【发布时间】:2017-10-14 08:43:54
【问题描述】:
我想让查询根据另一个表中特定行中的值动态选择要查找的表。
我有这个问题:
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 = database2
我想要这个:
SELECT d.name
FROM `database1`.domains AS d
WHERE (SELECT COUNT(u.id) FROM `database2`.users u) > 0
【问题讨论】:
-
这听起来像是一个非常糟糕的数据架构。
-
这个查询仅供我使用,用于统计。
-
看看here
-
SQL 是一种特殊用途的声明性语言,其中基本的 DDL/DML 命令(如
SELECT)一旦设置为不可变的。您可以将 MySQL 存储过程用于更多动态例程,或使用应用层、通用语言(PHP、Python、C#、Java、VB)动态生成条件 SQL 查询。