2010-02-08 65 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'; 
相關問題