mysql之对具有不同列数/名称的表组合多个 select * 查询,以便导出到不同的数据库
落叶无声
阅读:24
2024-09-03 21:39:00
评论:0
我有多个表,其中有多个列和字段名称。我想从这些有特定条件的表中选择 * 数据(然后将数据插入到不同的数据库中)。例如,如果我单独运行下面的查询,每个查询都会返回不同数量的行,其中列数和字段名称完全不同。当然,我可以将以下查询的结果分别导出到三个不同的文件中,然后将它们插入到不同的数据库中,但我的目标是将这些结果组合起来,以便我可以将数据导出到一个文件中。
Select * From table1 Where id>=500;
Select * From table2 Where id>=200;
Select * From table3 Where id>=1500;
请注意,Union all
在这种情况下不起作用,MySQL 表示#1222 - 使用的 SELECT 语句具有不同的列数
。
您能否帮助我解决这个问题?
请您参考如下方法:
我认为你走错了路,如果你导出一个联合,那么你在导入它时就会遇到问题。相反,请尝试合并文件,或将三个表分别导出到一个文件中,例如使用工具MYSQLDUMP,如下所示:
mysqldump -u root -pyour_password your_database table1 >> /tmp/mysql_dump.sql
mysqldump -u root -pyour_password your_database table2 >> /tmp/mysql_dump.sql
mysqldump -u root -pyour_password your_database table3 >> /tmp/mysql_dump.sql
编辑: 您说过您需要一个 where 条件 - 这也是可能的,如下所示:
mysqldump -u root -pyour_password --where="id>=500" your_database table1 >> /tmp/mysql_dump.sql
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。