2009-10-11 3 views
1

Я хотел бы запросить базу данных MySql, чтобы показать мне все существующие базы данных на основе предоставленного условия (условие, применяемое к имени базы данных). теперь, поскольку мое условие сложное, простого условия «LIKE» недостаточно, и мне нужно использовать обычное предложение WHERE.«Показать базы данных» с условием

Может ли кто-нибудь предоставить образец того, как это сделать?

ответ

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

Подробнее в docs.

3

Решение дается gnud может быть более оптимизирована для:

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

Задача выполнена только с одним SQL запросом.

Когда используется команда «USE» SQL, вся информация о базе данных считывается перед ее выбором, например, список таблиц и их содержимое. Используя вышеуказанный запрос, вы попадете в свою собственную базу данных и сможете запрашивать контент из таблицы в другой базе данных.

Вы могли бы использовать:

USE INFORMATION_SCHEMA -A; 

Это позволяет избежать чтения содержимого базы данных.

Где:

schema_name -> имя столбца INFORMATION_SCHEMA.SCHEMATA -> имя прежде. " имя базы данных и после имени таблицы.

Надеюсь, что это решение поможет.