“显示数据库”的条件

时间:2009-10-11 11:18:50

标签: mysql database

我想查询MySql数据库,根据提供的条件(应用于数据库名称的条件)向我显示所有现有数据库。 既然我的条件很复杂,简单的“LIKE”条件是不够的,我需要使用常规的WHERE子句。

任何人都可以提供如何做到这一点的样本吗?

4 个答案:

答案 0 :(得分:4)

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

docs中阅读更多内容。

答案 1 :(得分: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 - > '。'之前的名字。是数据库名称,后面是表名。

希望这个解决方案有所帮助。

答案 2 :(得分:2)

还有另一个,在我看来更方便的命令:

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

使用WHERE版本,您可以运行比非常有限的LIKE版本更灵活的查询。

Database放在反引号下非常重要,因为它是MySQL中的关键字。

另请参阅MySQL documentationExtensions to SHOW Statements

答案 3 :(得分:0)

您可以按照以下方式使用show database语句: 显示{数据库| SCHEMAS} [像'pattern'| WHERE expr] 也就是说,你可以写 show databases like '%dbname%'; 要么 show databases where数据库like '%dbname%';