2017-05-15 64 views
0

我希望查询根据另一个表中特定行中的值动态选择查找哪个表。动态选择哪个表

我有这个疑问:

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

我想:如果你要根据结果来改变变量值

SET @table_name = "some_table"; 

SELECT * FROM @table_name; 

SELECT d.name 

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

这听起来像一个非常糟糕的数据架构。 –

+0

此查询仅供我使用,用于统计。 –

+0

看一看[这里](http://stackoverflow.com/questions/4165020/what-is-dynamic-sql) – JohnHC

回答

0

你可以使用变量来此你选择你coudl使用IF如下:

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