mysql> select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='test' and TABLE_NAME regexp @m3;
+-------------+
| TABLE_NAME |
+-------------+
| user_201112 |
+-------------+
1 row in set (0.00 sec)
mysql> select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='test' and TABLE_NAME regexp @m2;
+-------------+
| TABLE_NAME |
+-------------+
| user_201201 |
+-------------+
1 row in set (0.00 sec)
mysql>
这样都可以。
mysql> select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='test' and TABLE_NAME regexp @m3|@m2;
Empty set (0.00 sec)
mysql>
这样就不行了。
换成字符,又可以了。
mysql> select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='test' and TABLE_NAME regexp '201201|201112';
+-------------+
| TABLE_NAME |
+-------------+
| user_201112 |
| user_201201 |
+-------------+
2 rows in set (0.00 sec)
已解决。
mysql> select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='test' and TABLE_NAME regexp BINARY concat(@m3,'|',@m2,'|',@m1);
+-------------+
| TABLE_NAME |
+-------------+
| user_201112 |
| user_201201 |
| user_201202 |
+-------------+
3 rows in set (0.00 sec)