【发布时间】:2011-06-06 05:10:01
【问题描述】:
有没有办法使用 UNION 或 JOIN 列出所有表和列的名称?
【问题讨论】:
有没有办法使用 UNION 或 JOIN 列出所有表和列的名称?
【问题讨论】:
如果你想要一个模式中的所有表和列,不需要使用UNION和BIND,只需将数据加入
会成功的。在以下位置查看两者的详细信息:
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
一个可以达到您的目标的最低限度的示例查询是:
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
但同样,可能需要根据表名连接两者 - 取决于您的确切目标。
如果您只想要名称中包含 UNION/BIND 的表和名称中包含 UNION/BIND 的列,那么执行此操作的两个简单查询是:
SELECT TABLE_NAME from INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%UNION%' or TABLE_NAME LIKE '%BIND%'
和
SELECT TABLE_NAME, COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%UNION%' or TABLE_NAME LIKE '%BIND%'
【讨论】:
您可以使用 INFORMATION_SCHEMA。下面的查询会很有用:
SELECT 'COLUMN' as Match_Type,
column_name as MATCH_NAME,
table_name,
table_schema
FROM INFORMATION_sCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%UNION%'
OR COLUMN_NAME LIKE '%BIND%'
UNION ALL
SELECT 'TABLE' as Match_Type,
table_name as MATCH_NAME,
table_name,
table_schema
FROM INFORMATION_sCHEMA.TABLES
WHERE TABLE_NAME LIKE '%UNION%'
OR TABLE_NAME LIKE '%BIND%'
【讨论】: