2011-01-09 68 views

回答

2

如果你想在一个模式中的所有表和列,无需使用UNION和BIND,只是在

  • INFORMATION_SCHEMA.COLUMNS加入数据
  • INFORMATION_SCHEMA.TABLES

会做的伎俩。见两个细节在:

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%' 
+0

谢谢。我不想同时列出所有表格和列,抱歉不清楚。我会再试一次,再次感谢! – qwerty 2011-01-09 20:57:57

0

您可以使用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%'