![](/img/trans.png)
[英]How to put table name as variable in select query without using prepare statement in mysql?
[英]Can I use a MySQL PREPARE statement in a function to create a query with a variable table name
我想創建一個內部具有select查詢的函數,該函數可以用於多個數據庫表,但我不能使用變量作為表名。 我可以使用函數中的PREPARE語句解決這個問題嗎?
一個例子:
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 $$
提前感謝任何輸入。
而不是stmt varchar(255)
使用@stmt:
...
DECLARE datereg DATETIME;
SET @stmt = concat(
'SELECT dateT FROM', dbTable, 'ORDER BY dateT DESC LIMIT 1');
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.