2010-02-08 41 views
13

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

+0

一个反问:为什么你需要吗? :) – Bozho 2010-02-08 21:16:55

+1

如果你真的想这样做,你可以输出SHOW TABLE和SHOW COLUMNS FROM的结果到命令行中的文本文件中,然后使用Perl和grep进行搜索 – Yada 2010-02-08 21:41:14

回答

0

试试这个:

mysqldump -u root -p –all-databases –single-transaction > all.sql 

然后执行与发现


文本编辑器搜索老派的方式也发现了这个......看起来很有希望,但我不知道你是多么雄心勃勃

http://mike.kruckenberg.com/presentations/Creating_INFORMATION_SCHEMA.pdf

+0

一个很好的简单解决方案,但我会建议使用无数据选项,因为所有你关心的是模式... – 2018-03-07 21:33:57

29

找到所有表和列,其中列名是一样的搜索词:

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

OP是非常具体的关于不使用information_schema,这不回答这个问题。 – buc 2012-05-27 15:44:12

+1

+ 1,因为这是我在搜索时寻找的。 – PeteGO 2012-06-21 21:13:40

+0

+1也是出于同样的原因 - 解决了我的特殊问题,节省了我很多时间。 – Redboots 2013-08-09 11:43:09

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

更容易

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name'; 
相关问题