2009-01-16 7 views

Répondre

9

Dans la base de données INFORMATION_SCHEMA:

select * from columns WHERE TABLE_NAME LIKE '%tablename%' AND COLUMN_NAME LIKE '%columnname%' 

Plus d'infos ici: http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

Ok, il ne répond pas tout à fait votre question mais vous devriez être en mesure de mettre ensemble la façon dont vous voulez à partir d'ici .

0

Pour MySQL, une procédure stockée (http://forge.mysql.com/tools/tool.php?id=232) permet de créer une table de stockage, puis de parcourir la table COLUMNS de la base de données information_schema pour obtenir les noms de table et de colonne de toutes les bases de données. Ensuite, exécutez une requête count() sur database.table pour chaque colonne avec la chaîne de recherche appropriée dans where condition. Si count()> 0, cette colonne perticulaire a le terme de recherche, il va donc insérer ce triplet (nom de la base de données, nom de la table, nom de la colonne) dans une table. Dernier Sélectionnez * dans la table pour afficher la table de base de données et les noms de colonnes ayant le terme recherché.

26

mysqldump --compact --skip-extended-insert -u root -proot mydb | grep "interesting string"

+0

Les options de compact et de skip-extended-insert sont très utiles. Merci. – CodeBlue

+0

Thankyou - c'est celui que je voulais vraiment – Sparky

0

Ressource commune Grep (crgrep) recherche des correspondances de nom de table/colonne et de données et prend en charge MySQL.

http://sourceforge.net/projects/crgrep/

recherche également d'autres difficiles à rechercher des ressources comme le contenu enfoui dans les archives. J'ai développé crgrep en tant qu'outil opensource.

+0

Craig - avez-vous une connexion à ce projet? Si oui, vous devriez l'indiquer dans votre réponse. Je dis cela parce que vous venez de poster une réponse pratiquement identique à deux autres questions anciennes ... –

+0

Oui, je suis l'auteur. J'ai mis à jour le poste en conséquence. – Craig

Questions connexes