我的问题是这个
我的数据库中有超过 100 万行的表。有时我需要在我的电脑上转储我的表的 SQL 并导出整个表,这需要很长时间。
实际上我需要导出的表,例如最后 5000 行。
那么有没有办法通过选择最后 X 行来导出 MySql 表。
我知道一些通过终端命令来做到这一点的方法,但如果可能的话,我需要糟糕的 MySql 查询。
谢谢
最佳答案
如果我理解得好的话,你可以尝试使用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 编辑器控制台运行查询,然后按导出按钮保存它(参见下图) ):
作为 .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);
关于php - 通过查询导出 MySql 表,选择几行按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48136226/