Php mysql按条件显示数据库

Php mysql按条件显示数据库,php,mysql,database,Php,Mysql,Database,我的数据库命名如下: database_100 database_120 database_153 database_143 ... 为了这个例子,我将调用“database ID”末尾的数字 执行类似于的操作,如“database%显示数据库,将输出所有数据库,这很好。现在我想显示id=100、120或320的数据库这只是一个示例,id列表本身是从数组中动态提取的 我怎么能做那样的事 编辑: 我正在尝试使用信息模式 USE INFORMATION_SC

我的数据库命名如下:

    database_100
    database_120
    database_153
    database_143
    ...
为了这个例子,我将调用“database ID”末尾的数字

执行类似于
的操作,如“database%
显示数据库,将输出所有数据库,这很好。现在我想显示id=100、120或320的数据库这只是一个示例,id列表本身是从数组中动态提取的

我怎么能做那样的事

编辑:

我正在尝试使用信息模式

USE INFORMATION_SCHEMA;
SELECT `SCHEMA_NAME` from `SCHEMATA` WHERE `SCHEMA_NAME` LIKE "database_%";
但是仍然不知道如何通过动态ID进行选择

我在考虑(在伪代码中):


只能在SQL中完成吗?

您可以使用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)

我不相信MySQL支持动态sql。为什么不可以使用prepare语句呢?试试这个链接
 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)