반응형
열 값을 업데이트하여 문자열의 일부를 바꿉니다.
MySQL 데이터베이스에 다음 열이 있는 테이블이 있습니다.
[id, url]
URL은 다음과 같습니다.
http://domain1.example/images/img1.jpg
모든 URL을 다른 도메인으로 업데이트하고 싶다
http://domain2.example/otherfolder/img1.jpg
파일 이름을 그대로 유지합니다.
어떤 쿼리를 실행해야 합니까?
UPDATE urls
SET url = REPLACE(url, 'domain1.example/images/', 'domain2.example/otherfolder/')
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.example/images/', 'http://domain2.example/otherfolder/')
WHERE url LIKE ('http://domain1.example/images/%');
관련 문서: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace
REPLACE 기능을 사용해 보겠습니다.
mysql> SELECT REPLACE('www.example.com', 'w', 'Ww');
-> 'WwWwWw.example.com'
대소문자를 구분합니다.
이거 드셔보세요.
update [table_name] set [field_name] =
replace([field_name],'[string_to_find]','[string_to_replace]');
모든 레코드가 아닌 WHERE 절의 조건을 준수하는 레코드만 바꾸려면 WHERE 절이 필요합니다.부분 문자열인 I.E.를 나타내려면 % 기호를 사용합니다.
LIKE ('...//example.com/images/%');
로 시작하는 모든 레코드를 의미합니다."...//example.com/images/"
그 후 아무것도 가질 수 없다(그게 바로%
~에 대해서)
또 다른 예는 다음과 같습니다.
LIKE ('%http://example.com/images/%')
그 말은 모든 기록에는"http://example.com/images/"
줄의 어느 부분에서든...
먼저 확인해야 합니다.
SELECT * FROM `university` WHERE course_name LIKE '%&%'
다음으로 업데이트해야 합니다.
UPDATE university
SET course_name = REPLACE(course_name, '&', '&') WHERE id = 1
결과: 엔지니어링 & 테크놀로지 => 엔지니어링 & 테크놀로지
언급URL : https://stackoverflow.com/questions/10177208/update-a-column-value-replacing-part-of-a-string
반응형
'source' 카테고리의 다른 글
MySQL - LIMIT를 사용한 UPDATE (0) | 2022.09.30 |
---|---|
C의 단일 문자 출력 (0) | 2022.09.30 |
.asSet(...)이 API에 있나요? (0) | 2022.09.30 |
UUID에 대한 트리거를 삽입하기 전에 MariaDB (0) | 2022.09.30 |
Lookup에서 재귀 CTE를 사용하는 방법 (0) | 2022.09.29 |