54

我有一种情况,应该从一个集合变量中获取表名,例如:

SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1);
SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1);
select * from @Cat where ID = @ID_1

但是这样做MySQL会输出错误,所以有人可以告诉我如何实现这一点,因为这些是我在MySQL中的初级步骤。

4

2 回答 2

85

您必须使用准备好的语句来执行此操作。就像是:

SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); 

PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
于 2012-01-10T20:25:24.320 回答
-5

经过数小时的调试,我得到了这个解决方案

我附上的图像 100% 适用于 mysql

于 2020-04-06T19:40:52.277 回答