924 votes

Comment trouver toutes les tables dans MySQL avec des noms de colonnes spécifiques?

J'ai 2 ou 3 noms de colonnes différents que je veux rechercher dans la base de données entière et énumérer toutes les tables qui ont ces colonnes. Un script facile?

1517voto

Ken Points 23619

Pour obtenir toutes les tables avec les colonnes 'columnA' ou 'ColumnB' dans la base de données 'YourDatabase'

 SELECT DISTINCT TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('columnA','ColumnB')
        AND TABLE_SCHEMA='YourDatabase';
 

207voto

GSerg Points 33571
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name LIKE 'wild'

48voto

Xman Classical Points 605

Plus simplement fait dans une ligne de SQL:

 SELECT * FROM information_schema.columns WHERE column_name = 'column_name';
 

38voto

baycaysoi Points 161
SELECT DISTINCT TABLE_NAME, COLUMN_NAME  
FROM INFORMATION_SCHEMA.COLUMNS  
WHERE column_name LIKE 'employee%'  
AND TABLE_SCHEMA='YourDatabase'

19voto

Radu Maris Points 1755

Dans la version qui n’ont pas d’information_schema (anciennes versions, ou de certains ndb), vous pouvez vider la structure de la table et Rechercher colonne manuellement.

Rechercher maintenant le nom de colonne en `` à l’aide de votre éditeur de texte préféré, ou utilisez des scripts awk astucieux  :)


Et un script sed simple pour trouver la colonne, il suffit de remplacer COLUMN_NAME avec votre de :

Vous pouvez diriger la décharge directement dans sed mais c’est trivial.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X