sourcecode

mySQL replace()를 사용하여 여러 레코드의 문자열을 대체하려면 어떻게 해야 합니까?

copyscript 2022. 9. 24. 10:12
반응형

mySQL replace()를 사용하여 여러 레코드의 문자열을 대체하려면 어떻게 해야 합니까?

데이터베이스에는 잘못된 데이터가 한 열에 있는 다수의 레코드가 있습니다. 임베디드 에디터가 유출되어서는 안 될 것들을 탈출하여 생성된 링크를 끊는 것입니다.

모든 레코드의 잘못된 문자를 대체하기 위해 쿼리를 실행하려고 하는데 방법을 찾을 수 없습니다.MySQL에서 기능을 찾았는데 쿼리 내에서 어떻게 사용할 수 있나요?

예를 들어 문자열을 바꾸려면 올바른 구문은 무엇입니까?&lt;실제 각도보다 작은 브래킷 포함(<를 포함한 모든 레코드에서&lt;에서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, '&lt;', '<')

체크해 주세요

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')

다음과 같이 저장 프로시저를 작성할 수 있습니다.

CREATE Procedure sanitize_()

시작한다.

#스페이스를 밑줄로 바꿉니다.

UPDATE Table SET FieldName = REPLACE(FieldName), "",_" 여기서 FieldName은 NULL이 아닙니다.

#점 삭제

UPDATE TABLE SET FieldName = REPLACE(FieldName")입니다. 여기서 FieldName은 NULL이 아닙니다.

#삭제(

UPDATE Table SET FieldName = REPLACE(FieldName,"("") 여기서 FieldName은 NULL이 아닙니다.

#delete (삭제)

UPDATE TABLE SET FieldName = REPLACE(FieldName, "") 여기서 FieldName은 NULL이 아닙니다.

#원하는 문자를 재레이스 또는 삭제

#..........................

끝.

이렇게 하면 테이블에 대한 모듈식 제어가 가능합니다.

또한 저장 프로시저를 일반화할 수 있습니다. 입력 파라미터를 sanitoize하기 위한 테이블을 사용하여 parametric으로 만들 수 있습니다.

이게 도움이 될 거야

UPDATE play_school_data SET title= REPLACE(title, "&#39;", "'") WHERE title = "Elmer&#39;s Parade";

결과:

title = Elmer's Parade

언급URL : https://stackoverflow.com/questions/4271186/how-can-i-use-mysql-replace-to-replace-strings-in-multiple-records

반응형