[英]Dynamically choose which table
I want to have the query dynamically choose which table it looks up against based on a value in a particular row in another table. 我想让查询动态地根据另一个表中特定行中的值选择要查找的表。
I have this query: 我有这个查询:
SELECT d.name
FROM `database1`.domains AS d
WHERE (SELECT COUNT(u.id) FROM <<d.db_name>>.users u) > 0
I want to use the value of d.db_name as database name. 我想使用d.db_name的值作为数据库名称。 Example: d.db_name = database2
示例:d.db_name = database2
i want this: 我要这个:
SELECT d.name
FROM `database1`.domains AS d
WHERE (SELECT COUNT(u.id) FROM `database2`.users u) > 0
You could use variables for this: 您可以为此使用变量:
SET @table_name = "some_table";
SELECT * FROM @table_name;
If you want to change the variable value depending on the results of your select you coudl use IF like this: 如果要根据选择的结果更改变量值,则可以使用IF,如下所示:
IF(some_column>50, @table_name := "value for true", @table_name := "value for false");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.