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)