I want to create a function that has a select query inside that can be used against multiple database tables, but I cannot use the variable as the table name. Can I get around this using the PREPARE statement in a function?
Example:
FUNCTION `TESTFUNC`(dbTable VARCHAR(25)) RETURNS bigint(20)
BEGIN
DECLARE datereg DATETIME;
DECLARE stmt VARCHAR(255);
SET stmt := concat(
'SELECT dateT FROM', dbTable, 'ORDER BY dateT DESC LIMIT 1');
PREPARE stmt FROM @stmt;
EXECUTE stmt;
RETURN dateT;
END $$
Thanks in advance for any input.
source
share