2009-10-11 7 views
1

Je voudrais interroger une base de données MySQL pour me montrer toutes les bases de données existantes en fonction de la condition fournie (condition appliquée sur le nom de la base de données). maintenant que ma condition est complexe, la simple condition "LIKE" ne suffit pas, et j'ai besoin d'utiliser la clause WHERE habituelle."Afficher les bases de données" avec la condition

quelqu'un peut-il fournir un échantillon de la façon de faire cela?

Répondre

5
USE INFORMATION_SCHEMA; 
SELECT `SCHEMA_NAME` from `SCHEMATA` WHERE `SCHEMA_NAME` LIKE "%whatever%"; 

En savoir plus dans le docs.

3

La solution donnée par GNUD peut être plus optimisé pour:

SELECT `schema_name` from INFORMATION_SCHEMA.SCHEMATA WHERE `SCHEMA_NAME` LIKE "%whatever%"; 

Tâche terminée avec une seule requête SQL. Lorsque la commande SQL 'USE' est utilisée, toutes les informations de la base de données sont lues avant d'être sélectionnées, comme la liste des tables et son contenu. En utilisant la requête ci-dessus, vous serez dans votre propre base de données et pourrez interroger le contenu d'une table dans une base de données différente.

Vous pouvez utiliser:

USE INFORMATION_SCHEMA -A; 

On évite ainsi la lecture du contenu de la base de données.

Où:

schema_name -> nom de la colonne INFORMATION_SCHEMA.SCHEMATA -> nom avant. ' est le nom de la base de données et après c'est le nom des tables.

Espérons que cette solution est utile.

Questions connexes