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

0yycz8jy  于 2023-03-28  发布在  Mysql
关注(0)|答案(2)|浏览(137)

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

field1 
field2

我在这里看到过一些例子,但它们只涵盖了一个列名或多个列名之间的一个列名。
例如,如果我有这四个表:

TABLE1
field1 field2 field3

TABLE2
field2 field4

TABLE3
field1 field3

TABLE4
field1 field2

因为我查询的表至少有“field1”“field2”,结果应该是:

TABLE1
TABLE4

我尝试使用INFORMATION_SCHEMA.COLUMNS表进行自连接,但无法正确连接…
谢谢你的帮忙

cngwdvgl

cngwdvgl1#

试试这个:

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'

注意:代码直接写在这里,没有测试。

huus2vyu

huus2vyu2#

使用此命令:

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

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

相关问题