如何在Mysql中找到包含某些列的所有表

时间:2017-08-30 08:39:50

标签: mysql

示例::我想查找包含这两列的所有表:userid,productid

2 个答案:

答案 0 :(得分:1)

如果您询问如何找出架构中哪些表具有某些列,您可以像这样查询information_schema数据库:

SELECT table_name FROM information_schema.columns
WHERE column_name = 'userid'
OR column_name = 'productid'

这将显示所有具有任一列的表。如果你只想知道那些有两个列的表添加一个子查询(一个JOIN也可以工作)

SELECT table_name FROM information_schema.columns c
WHERE column_name = 'userid'
AND (
    SELECT 1 FROM information_schema.columns
    WHERE table_name = c.table_name
    AND column_name = 'productid'
)

答案 1 :(得分:0)

SELECT table_name 
  FROM information_schema.columns
 WHERE column_name IN( 'userid','productid')
 GROUP 
    BY table_name HAVING COUNT(*) = 2;