반응형
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 SET field = replace(field, text_needs_to_be_replaced, text_required);
예를 들어, John의 모든 발생을 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 field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
INSTR()
방법은 두 번째로 빠른 및 생략 WHERE
모두 절하면 열이 인덱싱되지 않은 경우에도, 가장 느린입니다.
위의 명령 줄을 다음과 같이 사용했습니다. update TABLE-NAME set FIELD = replace (FIELD, 'And', 'and'); 목적은 And를 and로 대체하는 것이 었습니다 ( "A"는 소문자 여야 함). 문제는 데이터베이스에서 "And"를 찾을 수 없지만 "% And %"와 같이 사용하면 단어의 일부이거나 이미 소문자 인 다른 AND와 함께 찾을 수 있다는 것입니다.
참고 URL : https://stackoverflow.com/questions/125230/mysql-search-and-replace-some-text-in-a-field
반응형
'Programing' 카테고리의 다른 글
“sh”또는“bash”명령을 사용하지 않고 쉘 스크립트를 어떻게 실행합니까? (0) | 2020.04.09 |
---|---|
기존 파일을 열고 한 줄 추가 (0) | 2020.04.09 |
'svn cleanup'이 실패하면 어떻게해야합니까? (0) | 2020.04.09 |
삭제 후 SQL Server에서 자동 증분 재설정 (0) | 2020.04.09 |
MVC 응용 프로그램에서 데이터를 캐시하는 방법 (0) | 2020.04.09 |