우리는 하나의 열에 나쁜 데이터가있는 레코드가 많은 데이터베이스를 가지고 있습니다. 내장 편집기는 이스케이프되어서는 안되는 일부 항목을 이스케이프하고 생성 된 링크를 깨고 있습니다.
모든 레코드에서 잘못된 문자를 대체하기 위해 쿼리를 실행하고 싶지만 수행 방법을 알 수는 없습니다. MySQL 에서 replace()
함수 를 찾았 지만 쿼리에서 어떻게 사용할 수 있습니까?
내가 문자열 교체하기를 원한다면 예를 들어, 어떤 올바른 구문 될 것이다 <
실제보다 적게보다는 꺾쇠 괄호 (에 <
있는 모든 레코드) <
에 articleItem
열을? 단일 쿼리로 수행 할 수 있습니까 (예 : 한 번에 모두 선택하여 바꾸기) 여러 쿼리를 수행해야합니까? 여러 쿼리 인 경우에도 replace()
두 개 이상의 레코드에서 필드 값을 바꾸려면 어떻게해야 합니까?
답변
매우 일반적인 수준에서
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')
WHERE SomeOtherColumn LIKE '%PATTERN%'
귀하의 경우 귀하는 이들이 탈출했다고 말하지만 탈출 방법을 지정하지 않았으므로 탈출했다고 가정 해 봅시다. GREATERTHAN
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')
WHERE articleItem LIKE '%GREATERTHAN%'
쿼리가 실제로 문자열 내에서 작동하기 WHERE
때문에 패턴 일치를 수행하는 절은 성능을 향상시키지 않을 것입니다. 실제로 서버에 더 많은 작업을 생성 할 것입니다. 이 쿼리의 성능을 향상시킬 다른 WHERE 절 멤버가 없으면 다음과 같이 간단히 업데이트 할 수 있습니다.
UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')
여러 REPLACE
통화를 중첩 할 수도 있습니다
UPDATE MyTable
SET StringColumn = REPLACE (REPLACE (StringColumn, 'GREATERTHAN', '>'), 'LESSTHAN', '<')
데이터를 저장할 때와 반대로 데이터를 선택할 때도이를 수행 할 수 있습니다.
따라서 대신 :
SELECT MyURLString From MyTable
넌 할 수있어
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
답변
UPDATE some_table SET some_field = REPLACE(some_field, '<', '<')
답변
이것을 확인하십시오
UPDATE some_table SET some_field = REPLACE("Column Name/String", 'Search String', 'Replace String')
예를 들어 샘플 문자열 :
UPDATE some_table SET some_field = REPLACE("this is test string", 'test', 'sample')
열 / 필드 이름이있는 EG :
UPDATE some_table SET some_field = REPLACE(columnName, 'test', 'sample')
답변
다음과 같은 저장 프로 시저를 작성할 수 있습니다.
프로 시저 작성 sanitize_ TABLE ()
시작
# 공백을 밑줄로 바꿉니다.
업데이트 테이블 SET FieldName = REPLACE ( FieldName , “”, “_”) WHERE FieldName 이 NULL이 아닙니다.
# 삭제 점
업데이트 테이블 SET FieldName = REPLACE ( Field. , “.”, “”) WHERE FieldName 이 NULL이 아닙니다.
# 삭제 (
업데이트 테이블 SET FieldName = REPLACE ( FieldName , “(“, “”) WHERE FieldName 이 NULL이 아닙니다.
#delete)
업데이트 테이블 SET FieldName = REPLACE ( FieldName , “)”, “”) WHERE FieldName 이 NULL이 아닙니다.
당신이 원하는 문자를 #raplace 또는 삭제
# ……………………..
종료
이런 식으로 테이블에 대한 제어를 모듈화했습니다.
또한 입력 매개 변수를 살균하는 테이블을 사용하여 매개 변수를 저장하는 저장 프로 시저를 일반화 할 수도 있습니다
답변
도움이 될 것입니다.
UPDATE play_school_data SET title= REPLACE(title, "'", "'") WHERE title = "Elmer's Parade";
결과:
title = Elmer's Parade
답변
