URL (id, url)을 포함하는 열이 있습니다.
http://www.example.com/articles/updates/43
http://www.example.com/articles/updates/866
http://www.example.com/articles/updates/323
http://www.example.com/articles/updates/seo-url
http://www.example.com/articles/updates/4?something=test
“업데이트”라는 단어를 “뉴스”로 변경하고 싶습니다. 스크립트를 사용하여이 작업을 수행 할 수 있습니까?
답변
UPDATE your_table
SET your_field = REPLACE(your_field, 'articles/updates/', 'articles/news/')
WHERE your_field LIKE '%articles/updates/%'
이제 같은 행
http://www.example.com/articles/updates/43
될거야
http://www.example.com/articles/news/43
http://www.electrictoolbox.com/mysql-find-replace-text/
답변
예, MySQL에는 REPLACE () 함수가 있습니다.
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
사용할 때 별칭을 만들면 더 쉽습니다. SELECT
SELECT REPLACE(string_column, 'search', 'replace') as url....
답변
대체 기능은 당신을 위해 작동합니다.
REPLACE(str,from_str,to_str)
문자열 from_str이 문자열 to_str로 대체 된 문자열 str을 리턴합니다. REPLACE()
from_str을 검색 할 때 대소 문자를 구분합니다.
답변
replace () 함수를 사용하면됩니다.
where 절과 함께
update tabelName set columnName=REPLACE(columnName,'from','to') where condition;
where 절없이
update tabelName set columnName=REPLACE(columnName,'from','to');
참고 : 위의 쿼리는 테이블에서 직접 업데이트 레코드 인 경우 선택 쿼리를 원하고 데이터가 테이블에 영향을 미치지 않아야하는 경우 다음 쿼리를 사용할 수 있습니다
select REPLACE(columnName,'from','to') as updateRecord;
답변
동적으로 REPLACE
그리고 UPDATE
다른 열에 따라 gmaggio의 답변 외에도 다음 과 같이 할 수 있습니다.
UPDATE your_table t1
INNER JOIN other_table t2
ON t1.field_id = t2.field_id
SET t1.your_field = IF(LOCATE('articles/updates/', t1.your_field) > 0,
REPLACE(t1.your_field, 'articles/updates/', t2.new_folder), t1.your_field)
WHERE...
내 예제에서 문자열 articles/news/
은 저장되며 절 에서 other_table t2
사용할 필요가 없습니다 .LIKE
WHERE