列出包含给定列名的所有表格

13

如何列出包含特定列名的所有表?我使用的是Mysql版本4.1.13-nt-log。我知道小于5版本的Mysql没有information_scheme数据库。


一个反问:你为什么需要那个? :) - Bozho
1
如果你真的想这样做,你可以在命令行中将SHOW TABLES和SHOW COLUMNS FROM的结果输出到一个文本文件中,然后使用Perl和grep进行搜索。 - Yada
4个回答

31

查找所有表和列,其中列名类似于搜索词:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%partial_column_name%'
    AND TABLE_SCHEMA='YourDatabase';

2
OP非常明确地表示不使用information_schema,这并没有回答问题。 - buc
1
+1 是因为这正是我搜索时想要的。 - PeteGO
出于同样的原因,我也给它点赞——解决了我的特定问题并节省了大量时间。 - Redboots

0

更加容易

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name';

0

一个简单而不错的解决方案,但我建议使用无数据选项,因为你只关心模式... - Phil DD

-4
select table_name,column_name,data_type,data_length 
from user_tab_columns 
where column_name LIKE 'WHATEVER_U_WANT'
;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接