例如,假设我有一张桌子(比如列是[字母,颜色,数字]):
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:谢谢你修复它!
答案 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;
需要使用PREPARE
和EXECUTE
为每个查询生成包含相应文件名的动态SQL。