반응형
post_content 열에 html 콘텐츠가 있습니다.
A를 검색하여 B로 바꾸고 싶지만 A가 레코드에 처음 나타날 때만 두 번 이상 나타날 수 있습니다.
아래 쿼리는 분명히 A의 모든 인스턴스를 B로 대체합니다.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'A', 'B');
해결 방법
이것은 실제로 MySQL에서 원하는 것입니다.
UPDATE wp_post
SET post_content = CONCAT(REPLACE(LEFT(post_content, INSTR(post_content, 'A')), 'A', 'B'), SUBSTRING(post_content, INSTR(post_content, 'A') + 1));
이전 답변보다 약간 더 복잡합니다 .'A '의 첫 번째 인스턴스 (INSTR 함수 사용)를 찾은 다음 SUBSTRING 및 INSTR을 사용하여 동일한 것을 찾는 것보다 REPLACE와 조합하여 LEFT를 사용하여 해당 인스턴스 만 교체해야합니다. 'A'를 바꾸고 이전 문자열로 CONCAT합니다.
아래 내 테스트를 참조하십시오.
SET @string = 'this is A string with A replace and An Answer';
SELECT @string as actual_string
, CONCAT(REPLACE(LEFT(@string, INSTR(@string, 'A')), 'A', 'B'), SUBSTRING(@string, INSTR(@string, 'A') + 1)) as new_string;
생성 :
actual_string new_string
--------------------------------------------- ---------------------------------------------
this is A string with A replace and An Answer this is B string with A replace and An Answer
참조 페이지 https://stackoverflow.com/questions/12123477
반응형
'MySql' 카테고리의 다른 글
MySQL 임시 테이블에서 UNION ALL을 할 수 없습니까? (0) | 2021.02.01 |
---|---|
MySQL mysqldump 테이블 구조없이 데이터 추출 (0) | 2021.02.01 |
MySQL PHP 확인 MySQL 마지막 행 (0) | 2021.02.01 |
MySQL 및 Hibernate3 주석을 사용하는 <generator class = "native"> </ generator>에 해당 (0) | 2021.02.01 |
MySQL 특정 테이블에서 마지막으로 삽입 된 ID (0) | 2021.02.01 |
댓글