通过查询选择导出的几行降序来导出MySql表

时间:2018-01-07 10:24:35

标签: php mysql sql

我的问题是这个 我的数据库中有超过100万行的表。有时我需要在我的电脑上有我的表的SQL转储并导出整个表需要很长时间。 实际上我需要导出表格,例如最后5000行。 那么有没有办法通过选择最后X行导出MySql表。 我知道一些方法可以通过终端命令来实现,但是如果可能的话,我需要糟糕的MySql查询。 谢谢

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,您可以尝试使用MySQL提供的INTO OUTFILE功能。当然,我不知道您当前的查询是什么,但您可以轻松地改变我的结构:

SELECT * 
FROM table_name
INTO OUTFILE '/tmp/your_dump_table.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ORDER BY id DESC
LIMIT 5000

由于用户@Hayk Abrahamyan已表示倾向于将转储导出为.sql文件,因此我们尝试分析有效的替代方案:

  • 我们可以从 phpmyadmin 运行查询或(它确实是一个更好的解决方案) MysqlWorkbench SQL编辑器控制台并按导出按钮保存它(见下图):

export

作为.sql输出文件的结果,你将得到类似下面的结构:

/*
-- Query: SELECT * FROM mytodo.todos
ORDER BY id DESC
LIMIT 5000
-- Date: 2018-01-07 13:15
*/
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (3,'Eat something',1);
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (2,'Buy something',1);
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (1,'Go to the store',0);