SQL列出具有特定列名称的所有表

时间:2015-04-30 14:42:49

标签: mysql sql columnname

我想对MySQL 5.6服务器进行SQL查询,以便返回包含以下列名称的所有表:

field1 
field2

我在这里看到了一些示例,但它们只包含一个列名或一个可能的列名。

例如,如果我有这4个表:

TABLE1
field1 field2 field3

TABLE2
field2 field4

TABLE3
field1 field3

TABLE4
field1 field2

因为我查询的表格至少是" field1" AND " field2",结果应为:

TABLE1
TABLE4

我尝试使用INFORMATION_SCHEMA.COLUMNS表进行自我加入,但我无法正确使用...

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT DISTINCT T1.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS T1
INNER JOIN INFORMATION_SCHEMA.COLUMNS T2 ON(T1.TABLE_NAME = T2.TABLE_NAME)
WHERE T1.COLUMN_NAME = 'field1'
AND T2.COLUMN_NAME = 'field2'

注意:代码直接写在此处,未经过测试。

答案 1 :(得分:0)

使用此:

SELECT DISTINCT TABLE_NAME
FROM information_schema.COLUMNS 
WHERE COLUMN_NAME = 'field1' OR COLUMN_NAME = 'field2'

这应返回每个表名,其中包含名为“field1”或“field2”的列。