查询本身会解释我卡在哪里,我无法更改模式,有没有办法使用我从 if 语句中获取的表名并继续查询?
SELECT *,IF(user.type = 1,"staff","admin") as "table" FROM user WHERE "table".user_id = user.id
http://sqlfiddle.com/#!9/842be4/1
我试过设置一个变量,还是不行。有任何想法吗 ? 谢谢。
最佳答案
你想要一个像这样的动态查询
SET @table_name = (SELECT IF(user.type = 1,"staff","admin") FROM `user`);
SET @t1 =CONCAT("SELECT * FROM menu LEFT JOIN ", @table_name," ON ", @table_name,".user_id = user.id");
PREPARE stmt FROM @t1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
关于mysql - 字符串作为 mysql 表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445164/