如何导出MySQL查询的结果,所以我可以导入它再次
我想通过一定的标准来转储从我的表中的数据,这里是SQL查询:如何导出MySQL查询的结果,所以我可以导入它再次
"SELECT * FROM document WHERE date BETWEEN 20160101 AND 20160131"
表,我从是选择MyISAM合并。
我删除了与该查询相匹配的行,并且我想将它们从备份导回,但仅导入它们。
我曾试图使转储这样的:
mysql -uroot -proot mydb -e "SELECT * INTO OUTFILE '/tmp/doc.sql' from document WHERE date BETWEEN 20160101 AND 20160131".
但它会产生无法通过phpMyAdmin的导入工具导入的文件。再一次,PMA不想做这个查询结果的任何输出。
任何帮助?由于NDA,我无法发布真实数据库/表的结构。
编辑:对于从MyISAM MRG表中转储数据时遇到麻烦的所有问题,都需要从子表转储,而不是主表转储。
如果说实话,我完全不和的phpmyadmin进口刀具用phpmyadmin,但我知道它如何能在外壳做:
第1步 - 导出转储:
mysqldump -uUSER -pPASS \
--databases DB_NAME --tables document \
--where 'date BETWEEN 20160101 AND 20160131' \
--no-create-info > document.dump.sql
第2步 - 进口转储:
mysql -uUSER -pPASS -DDB_NAME < document.dump.sql
假设你有机会获得贝壳其中db所在,我希望这将是对你有帮助...
我注意到,当您使用合并MyISAM表时,您需要从子表中转储以获取数据虚拟。这就是为什么我不能接受你的anwer,因为它不完整,但tbh,不知道该怎么做:D –
mysqldump -uroot -proot mydb document --where="date BETWEEN 20160101 AND 20160131" > dump.sql
mysql -uroot -proot mydb < dump.sql
您使用什么代码以及尝试导入时会得到什么错误?你使用phpmyadmin是否势在必行?你有没有尝试导入其他任何东西,如命令行?尝试查看outfile,并考虑使用引用来处理新行问题(如果相关)。 – hilcharge