@ElvisP

Как массово изменить расширение изображений на свой фомат в MYSQL базе?

Сложно объяснить поэтому прилагаю скрин:
615c392974047312328536.jpeg
Изображения в базе хранятся как в формате .PNG так и в .WEBP
Я хочу массово, 1 запросом изменить все строки где расширение PNG на расширение WEBP.
Как это сделать?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@alexalexes
Этим запросом крайне внимательно изучаете - удовлетворяет ли вас результат преобразования строк в result_mod_f1 из mod_f1, и result_mod_f2 из mod_f2.
select mod_f1,  replace(mod_f1, '.png', '.webp') as result_mod_f1,
          mod_f2,  replace(mod_f2, '.png', '.webp') as result_mod_f2
from table

Если что-то не устраивает, переписываете replace-ы.
Если что-то переписали, то заменяете выражения в правых частях после знака =, чтобы преобразование mod_f1 соответствовало mod_f1, а преобразование mod_f2 для mod_f2.
/*update table
set mod_f1 = replace(mod_f1, '.png', '.webp'),
      mod_f2 = replace(mod_f2, '.png', '.webp')*/

Снимаете комментарий, словно собираетесь открыть защитную крышку на красной кнопке атомной бомбы и выполняете запрос.
ПС: Желательно делать это в программном средстве, которое поддерживает режим незакрытой транзакции, чтобы можно было откатить.
ППС: Если таблица очень большая, то лучше обновлять порциями.
/*update table
set mod_f1 = replace(mod_f1, '.png', '.webp'),
      mod_f2 = replace(mod_f2, '.png', '.webp')
where mod_f1 like '%.png%'
      or mod_f2 like '%.png%'
LIMIT 1000 */
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы