mysql - 字符串作为 mysql 表名

标签 mysql sql

查询本身会解释我卡在哪里,我无法更改模式,有没有办法使用我从 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/

相关文章:

mysql - gem 安装 mysql 不起作用。但我能够连接到 mysql -u root -p

mysql - 如何在 Laravel 中加入 2 个表?

php - 如何使用 PHP 或 mySQL 实现 2 路加密?

java - 如何将一串 base64 编码的数据插入到 sqlite3 表中?

MySQL 向外键添加注释

javascript - HTML5 本地存储和 SQL

python - 有没有办法从 IOS 应用程序调用 flask 应用程序中的多个获取和发布请求

mysql - MySQL 中的 CASE、WHEN 语句中的 Order by 子句不起作用

java - 如何使用 SQLite ID 自动增量?

c# - SQL 或平面文件访问哪个更有效?