Экспортировать строки базы данных MySQL как текстовые файлы?
Как мне экспортировать каждую строку набора результатов в свой собственный текстовый файл в MySql?
Просто интересно, можно ли экспортировать каждую строку (из определенного столбца) в несколько текстовых файлов, чтобы каждая строка выводилась в отдельный файл.txt?
ура
1 ответ
Да, это возможно. Но вам нужно написать код, чтобы сделать это. Выполните запрос, извлеките каждую строку и для каждой строки откройте файловый дескриптор, запишите все в файловый дескриптор и закройте файловый дескриптор.
Если вы хотите сделать это из MySQL, вы можете использовать расширения MySQL для инструкции SELECT:
SELECT ... INTO OUTFILE
-или же-
SELECT ... INTO DUMPFILE
Но вам нужно будет выполнить отдельный оператор для каждого "текстового файла", который вы хотите создать, и вы захотите ОГРАНИЧИТЬ запрос на возврат одной строки.
В качестве очень неэффективного примера одного из способов сделать это для количества строк в таблице, выполните цикл:
SELECT * FROM mytable ORDER BY id LIMIT 0,1 INTO OUTFILE 'row_1.txt' ;
SELECT * FROM mytable ORDER BY id LIMIT 1,1 INTO OUTFILE 'row_2.txt' ;
SELECT * FROM mytable ORDER BY id LIMIT 2,1 INTO OUTFILE 'row_3.txt' ;
Это очень неэффективно для больших сетов. И есть возможность для кого-то вставлять или удалять строки во время работы, и у вас есть возможность "пропустить" строку и / или получить "дубликат".
Для больших наборов вы хотите более эффективные запросы. Со списком значений идентификаторов вы можете просмотреть их и сделать что-то вроде:
SELECT * FROM mytable WHERE id = 5 LIMIT 1 INTO OUTFILE 'id_5.txt' ;
SELECT * FROM mytable WHERE id = 7 LIMIT 1 INTO OUTFILE 'id_7.txt' ;
SELECT * FROM mytable WHERE id = 11 LIMIT 1 INTO OUTFILE 'id_11.txt' ;
С отдельной программой вы можете выполнить только один запрос:
SELECT * FROM mytable ORDER BY id;
Затем выполните поиск по строкам и запишите каждую строку в отдельный файл.