Например, скажем, у меня есть таблица (скажем, столбцы: [letter, color, number]):
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
Спасибо!
edit: как сохранить новые строки? Это не отображается правильно edit2: спасибо за исправление!
Используйте 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;
Он должен будет генерировать динамический SQL с соответствующим именем файла в нем для каждого запроса, используя PREPARE
и EXECUTE
.
{}
, чтобы отметить код, который должен отображаться буквально.