最好的办法是:
select * from(显示类似“T_DATA___”的表)//无效
有超过600个名为T_DATAxy的表,其中x和y是字母
答案 0 :(得分:0)
这种设计出了问题。一次访问600个表意味着在磁盘上访问多达1800个文件。你应该改为对这些数据进行分区。
就问题而言,我担心你需要使用存储过程或外部应用程序来构建多个UNION查询语句。不过,我似乎记得在UNION中合并了32个表的限制。
答案 1 :(得分:0)
您可以获取所需数据的表列表(显示__表),然后使用mysql dump,传入该列表。
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
如果您决定从SQL查询中获取它,则可以使用宏生成适当的sql查询并立即执行它们。例如获取表列表,用“;(换行符)select * from”替换换行符,执行所有查询。 (emacs mysql模式使这非常容易)。
正如另一位评论者所说,由于#-table限制,您将无法在单个查询中执行此操作。