Отдельный экспорт из запроса MYSQL

#mysql #export-to-csv

#mysql #экспорт в csv

Вопрос:

Я хотел бы создать отдельные экспортированные отчеты для разных типов животных, которые у меня есть в моей таблице. Я могу написать эти отчеты отдельно, однако у меня более 200 различных типов животных, и поэтому выполнение 200 отдельных запросов нецелесообразно.

 ANIMAL_TABLE

    AnimalName
    -----------
    CAT 
    DOG
    MOUSE
    HORSE
  

В принципе, я хотел бы выполнить аналогичный запрос для

 SELECT * INTO OUTFILE '/tmp/ANIMAL-NAME.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\’
LINES TERMINATED BY 'n'
FROM ANIMAL_TABLE WHERE 1
  

но при наличии 4 файлов CSV вместо одного фактически каждое изменение типа animal создает новый файл

 CAT.csv 
DOG.csv
MOUSE.csv
HORSE.csv
  

Любая помощь будет оценена.

Комментарии:

1. Я знаю, что вы использовали его до конца, но вызов столбца или переменной ANIMAIL для представления животных приведет к опечаткам где-нибудь в будущем!

2. Мне немного любопытно, как почтальон собирается запихнуть эту лошадь в ваш почтовый ящик.

3. извинения, проверено правописание и добавлено больше деталей. Спасибо, что указали на это. Что касается отправки лошади по почте, я собираюсь, чтобы почтальон сначала попробовал хвост 😉

Ответ №1:

 SELECT * INTO OUTFILE '/tmp/ANIMAL-HORSE.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\’
LINES TERMINATED BY 'n'
FROM ANIMAL_TABLE WHERE animal_name LIKE 'horse'
  

Комментарии:

1. Спасибо за это, однако у меня более 200 различных типов животных, и поэтому выполнение 200 отдельных запросов нецелесообразно.

2. Вам нужно будет создать свой запрос с использованием динамического sql, что не очень сложная задача. Просто создайте элементы, используя запрос таблицы и немного конкатинации строк, затем используйте результат в качестве входных данных для запроса и повторите