mysql - 动态选择哪个表

标签 mysql sql

我想让查询根据另一个表中特定行中的值动态选择要查找的表。

我有这个查询:

SELECT d.name

FROM `database1`.domains AS d
WHERE (SELECT COUNT(u.id) FROM <<d.db_name>>.users u) > 0

我想使用 d.db_name 的值作为数据库名称。 示例:d.db_name = 数据库2

我想要这个:

SELECT d.name

FROM `database1`.domains AS d
WHERE (SELECT COUNT(u.id) FROM `database2`.users u) > 0

最佳答案

您可以为此使用变量:

SET @table_name = "some_table";

SELECT * FROM @table_name;

如果您想根据选择的结果更改变量值,您可以像这样使用 IF:

IF(some_column>50, @table_name := "value for true", @table_name := "value for false");

关于mysql - 动态选择哪个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43981613/

相关文章:

mysql - 在mysql中对具有2集数的行进行排序

mysql - 如何从 WordPress (MySQL) 中的多个帖子中删除宽度和高度属性

mysql - 在单个查询中显示标记和最大标记

Mysql加入排序

MySQL 将两列合并为一列

MySQL在全表范围内为字段添加前缀

java - 在java中检索MySQL时间

MYSQL 多重联接不会返回 Employee-Supervisor-Item-Inspection 的所有想要的行

mysql - 如何将 1 列的结果用作另一列的一部分

mysql - 改进mysql查询