我制作了一个程序,循环遍历“another_table”中的字符串名称表,并且我使用这些字符串对不同的表“inputOrders”进行查询,但我得到的不是返回数字,而是我输入的字符串返回。
DROP PROCEDURE IF EXISTS x1;
delimiter //
CREATE PROCEDURE retrieveOrderTotal()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE temp VARCHAR(50) DEFAULT "";
declare stuff CURSOR FOR SELECT * FROM another_table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
open stuff;
getColumn: LOOP
FETCH stuff INTO temp;
IF finished = 1 THEN
LEAVE getColumn;
END IF;
select temp from inputOrders;
END LOOP getColumn;
close stuff;
End
//
变量 another_table 有:
5:_WKLY_SPCL_1
10:_WKLY_SPCL_1
15:_WKLY_SPCL_1
20:_WKLY_SPCL_1
输入订单有:
5:_WKLY_SPCL_1
------------------
1
2
3
4
最佳答案
您可以尝试如下操作:
SET @sql := CONCAT('SELECT * FROM ', @table, ';');
PREPARE stmt FROM @sql;
EXECUTE stmt;
关于mysql 查询字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425105/