Поиск не всех числовых c имен файлов в SQL с регулярным выражением и замена результата на значение из столбца - PullRequest
0 голосов
/ 02 апреля 2020

Я не знаю, возможно ли это, но я ищу способ в базе данных Mysql:

  • поиск предметов, где model = 'YES-OK' и image имя файла не все цифры 1027 * (в примере: идентификатор строки 5). Для этого я обнаружил, что Regex \/my\/dir-ectory\/\b.*[a-zA-Z]+.*\b.jpg должен работать.

enter image description here

  • Соответствующие строки: заменить имя файла изображения на SKU без запятой.

Пример ввода в базу данных:

+----+--------+--------+-----------------------------+
| id |  sku   | model  |            image            |
+----+--------+--------+-----------------------------+
|  1 | 123,45 | YES-OK | /my/dir-ectory/abc4.jpg     |
|  2 | 123,46 | YES-OK | /my/dir-ectory/4abc.jpg     |
|  3 | 123,47 | YES-OK | /my/dir-ectory/abcd.jpg     |
|  4 | 123,48 | YES-OK | /my/dir-ectory/3a-baaac.jpg |
|  5 | 123,49 | YES-OK | /my/dir-ectory/12349.jpg    |
+----+--------+--------+-----------------------------+

Пример вывода:

+----+--------+--------+-----------------------------+
| id |  sku   | model  |            image            |
+----+--------+--------+-----------------------------+
|  1 | 123,45 | YES-OK | /my/dir-ectory/12345.jpg    |
|  2 | 123,46 | YES-OK | /my/dir-ectory/12346.jpg    |
|  3 | 123,47 | YES-OK | /my/dir-ectory/12347.jpg    |
|  4 | 123,48 | YES-OK | /my/dir-ectory/12348.jpg    |
|  5 | 123,49 | YES-OK | /my/dir-ectory/12349.jpg    |
+----+--------+--------+-----------------------------+

Возможно ли это в чистом виде SQL?

1 Ответ

1 голос
/ 02 апреля 2020

Предполагая, что путь к вашему изображению имеет одинаковый формат во всех строках:

select id, sku, model,
       concat(substring_index(image, '/', 3), '/', replace(sku, ',', ''), '.jpg')
from t
where model = 'YES-OK';

И затем вы можете добавить найденное регулярное выражение для чисел. Мне немного трудно следовать.

Вы можете легко включить тот же лог c в update, если хотите update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...