我的数据库名称如下:
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中完成吗?
答案 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)