MySQL按列分组然后将每个组提取到.csv文件中?

时间:2018-04-10 20:19:20

标签: mysql csv

例如,假设我有一张桌子(比如列是[字母,颜色,数字]):

a|green |2
b|blue  |3
a|red   |3
a|blue  |4
b|yellow|1
c|red   |9
c|blue  |5

首先,我想通过第一列对它们进行分组/排序,以便它:

a|green |2
a|red   |3
a|blue  |4
b|blue  |3
b|yellow|1
c|red   |9
c|blue  |5

最后,我想将每个组提取到不同的.csv文件中:

a.csv
a|green |2
a|red   |3
a|blue  |4

b.csv
b|blue  |3
b|yellow|1


c.csv
c|red   |9
c|blue  |5

谢谢!

编辑:如何保留新行?它没有正确显示 edit2:谢谢你修复它!

1 个答案:

答案 0 :(得分:0)

对第一列的每个值使用SELECT ... INTO OUTFILE ...

SELECT *
INTO OUTFILE 'a.csv'
FROM yourTable
WHERE col1 = 'a';

SELECT *
INTO OUTFILE 'b.csv'
FROM yourTable
WHERE col1 = 'b';

等等。

如果您需要动态地为一组未知值执行此操作,则可以编写一个循环遍及

结果的存储过程
SELECT DISTINCT col1
FROM yourTable;

需要使用PREPAREEXECUTE为每个查询生成包含相应文件名的动态SQL。