@Hello1

Работа с путями в SQL. Есть простой способ?

Пример - sqlfiddle.com/#!9/a2612
Есть столбец с путями до файлов, к примеру '/a/b/c/110/h4eheh.jpg'
Необходимо получить получить из него только последнюю папку, расширение и вставить между ними статическую строку. Т.е. должно получиться новое имя '110_somestring.jpg'
Можно ли написать запрос без кучи вложенных функций?

P.S. Прошу не предлагать реализовать это на python/php/node.js и т.д.
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@repeat
SELECT CONCAT(SUBSTRING_INDEX(SUBSTRING_INDEX('/a/b/c/110/h4eheh.jpg','/',-2),'/',1),'_somestring.',SUBSTRING_INDEX('/a/b/c/110/h4eheh.jpg','.',-1)) as image


для понимания откуда что взял, вот "исходник"
SET @q = '/a/b/c/110/h4eheh.jpg';
SET @a1 = SUBSTRING_INDEX(SUBSTRING_INDEX(@q,'/',-2),'/',1);
SET @a2 = SUBSTRING_INDEX(@q,'.',-1);
SELECT @q, CONCAT(@a1,'_somestring.',@a2),@a2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
explode по /, потом взять только последний и третий от конца, потом обратно склеить через GROUP_CONCAT.
в принципе ничего не мешает поправить функцию, чтобы сама и склеивала обратно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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