정규식 SQL의 모든 숫자 파일 이름을 비 검색 열의 값으로 결과를 교체

애드리안 :

그것이 가능하다면 모르겠지만, 나는 MySQL 데이터베이스에 방법을 찾고 있어요 :

  • 항목을 검색 model = 'YES-OK'하고 image이를 위해 내가 정규식이 있음을 발견 : 파일 이름 (행 ID 5 예) 모든 숫자하지 않습니다 \/my\/dir-ectory\/\b.*[a-zA-Z]+.*\b.jpg작동합니다.

여기에 이미지 설명을 입력

  • 일치하는 행 : 쉼표없이 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에서 수 있습니까?

고든 리노 프 :

모든 행에서 같은 포맷은 이미지 경로를 가정하면 :

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

그리고 당신은 당신이 번호를 발견하는 정규 표현식을 추가 할 수 있습니다. 나는 따라하기 조금 어려운 찾을 수 있습니다.

당신은 쉽게로 동일한 로직을 통합 할 수 있습니다 update당신이 원하는 경우 update.

추천

출처http://10.200.1.11:23101/article/api/json?id=402500&siteId=1