programing

MySQL 검색 및 필드의 일부 텍스트 바꾸기

goodcopy 2022. 12. 7. 00:19
반응형

MySQL 검색 및 필드의 일부 텍스트 바꾸기

테이블의 특정 필드에서 텍스트 검색 및 치환을 수행하는 MySQL 쿼리는 무엇입니까?

즉, 검색foo로 대체하다bar그래서 그 가치가 있는 필드가 있는 레코드는hello foo된다hello bar.

바꾸다table_name그리고.field해당 테이블 이름과 필드를 일치시킵니다.

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
UPDATE table_name 
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');

내 경험상 가장 빠른 방법은

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';

INSTR()way는 두 번째 단계이며 생략된WHERE열 인덱스가 작성되지 않은 경우에도 절 전체가 가장 느립니다.

 UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);

예를 들어 John by Mark의 모든 항목을 대체하려면 다음과 같이 사용합니다.

UPDATE student SET student_name = replace(student_name, 'John', 'Mark');

또한 다른 필드의 값을 기준으로 검색 및 바꾸려면 CONCAT를 수행할 수 있습니다.

update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));

다른 사람들이 바로 찾을 수 있도록 이 사진을 여기 두기 위해서요.

문자열 바꾸기 함수가 를 수행합니다.

위의 명령줄을 다음과 같이 사용했습니다. update TABLE-NAME set FILD = replace(FILD, 'And', 'and'); 목적은 And를 and로 대체하는 것입니다.("A"는 소문자여야 합니다.)문제는 데이터베이스에서 "And"를 찾을 수 없다는 것입니다. 그러나 "%And%"와 같이 사용하면 단어의 일부인 다른 많은 및 소문자를 찾을 수 있습니다.

언급URL : https://stackoverflow.com/questions/125230/mysql-search-and-replace-some-text-in-a-field

반응형