• XSS.stack #1 – первый литературный журнал от юзеров форума

dumpfile со всех строк в таблице MySQL

okihad

RAID-массив
Пользователь
Регистрация
21.01.2020
Сообщения
53
Реакции
38
Всем привет!

Имеется MySQL база c таблицей, в которой сохранены фото.

Помогите пожлуйста слить все фотки одним запросом в папку. Если сделать такой запрос, то фотка с ID 29345 выгружается и открывается.
SELECT photo FROM user_photo WHERE id_user=29345 into dumpfile "//10.10.10.18/1/3.jpg"

Но как это сделать сразу для всех 28 тысяч строк? Никак не могу понять.
Подскажите, заранее благодарен!

Дано:
Таблица user_photo
Фото в столбце photo
IDшники в столбце id_user
Общая папка, куда копировать //10.10.10.18/1

Требования:

1. Выдернуть фотки только SQL запросом.
2. Название конечного файла не важно. Можно подставить в имя IDшник, но не принципиально.
 
Немного пришлось дописать процедуру. Получилось так.

#Создать процедуру
drop procedure if exists dump_image;
delimiter //
create procedure dump_image()
begin

declare this_id int;
declare p1 int DEFAULT 0;
declare cur1 cursor for select id_user from user_photo WHERE id_user > 1 LIMIT 1,3000;

open cur1;
read_loop: loop
fetch cur1 into this_id;
SET @filename = CONCAT('//10.10.10.18/1/file_', this_id ,'.jpg');
set @query = concat('SELECT photo FROM user_photo WHERE id_user=', this_id , ' INTO DUMPFILE \"', @filename,'\";');
prepare write_file from @query;
execute write_file;

SET p1 = p1 + 1;
IF p1 < 10 THEN
ITERATE read_loop;
END IF;
end loop;
close cur1;
end //
DELIMITER ;

После этого вызываем созданную процедуру запросом:

call dump_image();
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх