«Показать базы данных» с условием

0

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

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

Теги:
database

4 ответа

4
Лучший ответ
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;

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

Где:

имя_схемы → имя столбца  INFORMATION_SCHEMA.SCHEMATA → имя до '.' имя базы данных и после имени таблицы.

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

2

Есть и другая, в моих глазах более удобная команда:

SHOW DATABASES WHERE `Database` LIKE '%whatever1%' OR `Database` LIKE '%whatever2%';

С версией WHERE вы можете запускать более гибкие запросы, чем с очень ограниченной версией LIKE.

Очень важно поместить Database под backquotes, потому что это ключевое слово в MySQL.

См. также Документация по MySQL и Расширения для SHOW Statementments.

0

SCHEMAS} [LIKE 'pattern' | WHERE expr], то есть вы можете просто написать show databases like '%dbname%'; или show databases where база данных, like '%dbname%';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню