mysql按条件显示数据库

时间:2014-08-19 17:36:38

标签: php mysql database

我的数据库名称如下:

    database_100
    database_120
    database_153
    database_143
    ...

我会在最后拨打号码' Databse ID'为了这个例子。

执行SHOW DATABASES LIKE "database_%之类的操作会输出所有数据库,并且没问题。现在我想用id = 100 or 120 or 320显示数据库这只是一个例子,ID列表本身是从数组中动态提取的。

我该怎么办?

编辑:

我试图使用INFORMATION_SCHEMA

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

但仍然无法弄清楚如何通过动态ID进行选择。

我正在思考(伪代码)中的内容:

USE INFORMATION_SCHEMA;
SELECT `SCHEMA_NAME` from `SCHEMATA` WHERE `SCHEMA_NAME` LIKE "database_$var" WHILE $var in (121, 153, 143);

只能在SQL中完成吗?

1 个答案:

答案 0 :(得分:1)

你可以使用prepare语句,试试下面的代码它会解决你的问题... 但是,您需要根据您的要求修改此行set @schema := 'tes%';

 mysql> USE INFORMATION_SCHEMA
    Database changed
    mysql> prepare stmt from
        -> 'SELECT SCHEMA_NAME from SCHEMATA WHERE SCHEMA_NAME like ?';
    Query OK, 0 rows affected (0.00 sec)
    Statement prepared

    mysql> set @schema := 'tes%';
    Query OK, 0 rows affected (0.00 sec)

    mysql> execute stmt using @schema;
    +-------------+
    | SCHEMA_NAME |
    +-------------+
    | test        |
    +-------------+
    1 row in set (0.00 sec)