我的mysql数据库中的表名是动态生成的。有没有办法从名称与模式匹配的表中选择数据?我猜它会是这样的:
select * from 'table_id_%'
答案 0 :(得分:10)
不,你不能用MySQL做到这一点。无法动态指定查询中的表 - 您必须在应用程序中构建列表(或执行多个单表查询)。
答案 1 :(得分:7)
您可以使用INFORMATION_SCHEMA TABLES表来查找所需的表,这里是文档:http://dev.mysql.com/doc/refman/5.0/en/tables-table.html。 TABLES表的列名为NAME,表示表的名称。找到表名后,您可以运行任何您喜欢的SQL查询。
答案 2 :(得分:2)
以你想要的方式做到这一点是不可能的。但是,您可以使用基本上是查询模板的prepared statements,其中您可以根据需要更新替换参数(AFAIK也是表名),而无需复制并为不同的表反复粘贴相同的查询。