如何在 MySQL 中查找包含两个特定列的所有表?
要查找两个特定的列名,请使用 information_schema.columns,在此处,我使用 Id 代替 columnA 和 Name 代替 columnB −
mysql> select table_name as TableNameFromWebDatabase -> from information_schema.columns -> where column_name IN ('Id', 'Name') -> group by table_name -> having count(*) = 3;
这将产生以下输出。以下是包含列 Id 和 Name 的表 −
+--------------------------+ | TableNameFromWebDatabase | +--------------------------+ | student | | distinctdemo | | secondtable | | groupconcatenatedemo | | indemo | | ifnulldemo | | demotable211 | | demotable212 | | demotable223 | | demotable233 | | demotable251 | | demotable255 | +--------------------------+ 12 rows in set (0.25 sec)
为了验证,让我们查看其中一个表的说明。以下为查询 −
mysql> desc demotable233;
这将产生以下输出。此处,你可以看到我们有 Int 和 Name 列 −
+-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
广告