select语句如何对一个数据库中所有相同的表操作?
有一个MYSQL数据库,数据库名为test_db,此数据库中有30个表,其中28个表名为table1,table2,table3……table28,另外的2个表名为table88,talbe99。
这28个表的结构是一样的,假设为 ID, NAME , SEX , 我现想用一个select 语句查询该test_db数据库的28个表中SEX为“男”的所有数据,应该如何写这个select语句?
我不可能这样吧: select * from test_db.table1,test_db.table2,(写尽这28个表名) where SEX = '男 '。 有什么好方法吗?
应该怎样对数据库中所有相同表的操作?
------解决方案--------------------写个存储过程对28个表进行循环操作。
------解决方案--------------------动态从系统表中获取这30个表的表名,生成类似如下格式的SQL:
select * from T1 where ...
union all
select * from T2 where ...
union all
...
------解决方案--------------------动态拼写表名,然后 from 动态添加表即可。
每个都用 union 即可了。