有一个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 = '男'。  有什么好方法吗?应该怎样对数据库中所有相同表的操作?

解决方案 »

  1.   

    动态从系统表中获取这30个表的表名,生成类似如下格式的SQL:select * from T1 where ... 
    union all
    select * from T2 where ... 
    union all
    ...
      

  2.   

    动态拼写表名,然后 from 动态添加表即可。
    每个都用 union 即可了。
      

  3.   

    多谢yueliangdao0608,wangtiecheng,whalefish2001三位,
    对MYSQL不熟,具体语句怎么写,还请指教。