[SQL] 와일드 카드로 교체 MySQL은
SQL와일드 카드로 교체 MySQL은
나는 새로운 문자열로 특정의 XML 노드를 대체 할 SQL 업데이트를 작성하려고 해요 :
UPDATE table
SET Configuration = REPLACE(Configuration,
"<tag>%%ANY_VALUE%%</tag>"
"<tag>NEW_DATA</tag>");
그래서
<루트> <태그> SDADAS 태그> 루트>
가된다
<루트> <태그> NEW_DATA 태그> 루트>
요청이 유형의 누락 구문 메신저가 있습니까?
해결법
-
==============================
1.업데이트 : MySQL을 8.0 함수 REGEX_REPLACE있다 ().
업데이트 : MySQL을 8.0 함수 REGEX_REPLACE있다 ().
아래는 여전히 8.0 전에 MySQL의 모든 버전에 적용 2014에서 내 대답입니다 :
단지 다른 상수 문자열에 대한 하나의 상수 문자열을 대체 () 등 와일드 카드, 패턴, 정규 표현식, REPLACE에 대한 지원하지 않습니다 () 교체.
당신은 문자열의 주요 부분 문자열의 후행 부분을 선택하는, 뭔가 복잡한을 시도 할 수 있습니다 :
UPDATE table SET Configuration = CONCAT( SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4), NEW_DATA, SUBSTR(Configuration, LOCATE('</tag>', Configuration) )
당신은 <태그>을 여러 번해야하지만이 경우에 작동하지 않습니다.
당신은 응용 프로그램에 행 다시 가져 오기 당신의 마음에 드는 언어를 사용하여 문자열 교체를 수행하고 행 등을 게시 할 수 있습니다. 즉, 각 행의 세 단계.
-
==============================
2.이러한 문제를 해결하기 위해 오라클의 REGEXP_REPLACE로 MySQL에는 붙박이 기능이 없습니다.
이러한 문제를 해결하기 위해 오라클의 REGEXP_REPLACE로 MySQL에는 붙박이 기능이 없습니다.
우리는 타사 기능을 사용하거나 우리는 우리의 자아를 구현해야합니다.
그래서이 링크가 해결 문제에 대한 도움이되기를 바랍니다.
http://www.nacodes.com/2013/01/29/Create-Function-MySQL-Regex-replace-TRIM-for-MySQL
from https://stackoverflow.com/questions/21001172/mysql-for-replace-with-wildcard by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server는 24 시간에 의해 지속 시간 행을 분할 (0) | 2020.06.13 |
---|---|
[SQL] 이 텍스트 필드에서 작동하지 왜 GROUP_CONCAT 또는 다른 이유에 길이 제한이 (0) | 2020.06.13 |
[SQL] 내장 기능은 각 단어의 첫 글자를 대문자로 (0) | 2020.06.13 |
[SQL] 테이블이 비어있는 경우 INSERT를 실행? (0) | 2020.06.13 |
[SQL] 어떻게 SQL Server의 저장 프로 시저에서 CSV 출력 파일을 생성합니다 (0) | 2020.06.13 |