@immelnikoff
Изучаю БД

Как выгрузить из MySQL 8.0 сразу несколько фото в папочку?

Есть таблица Photo(id INT, img BLOB).
Нужно одним запросом выгрузить сразу несколько фоток в папку, причем имена выгруженных файлов должны иметь формат "id.jpg". Как это сделать?

Как выгрузить одно фото я знаю:
SELECT img FROM Photo WHERE id=302768 INTO DUMPFILE 'X:\\Data\\db_name\\1\\302768.jpg';
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
kawabanga
@kawabanga
https://stackoverflow.com/questions/33881344/selec...
drop procedure if exists dump_image;
delimiter //
create procedure dump_image()
begin

declare this_id int;
declare cur1 cursor for select imageId from image;
open cur1;
  read_loop: loop
    fetch cur1 into this_id;
    set @query = concat('select blob_field from image where imageId=', 
        this_id, ' into outfile "/tmp/xyz-', this_id,'.jpg"');
    prepare write_file from @query;
    execute write_file;
  end loop;
close cur1;
end //
delimiter ;
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Одним запросом - никак. Но можно сделать хранимую процедуру, которая будет пробегать по строкам таблицы и для каждой строки вызывать запрос, записывающий в файл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы