programing

내 sql REGEXP_REPLACE가 모든 일치 항목을 변경하지 않는 이유는 무엇입니까?

elecom 2023. 8. 26. 10:28
반응형

내 sql REGEXP_REPLACE가 모든 일치 항목을 변경하지 않는 이유는 무엇입니까?

사용 중mariadb다음 코드로:

UPDATE files SET file_source = REGEXP_REPLACE (file_source, 's:[1-9][1-9][1-9]|s:[1-9][1-9]|s:[1-9]', "s:12") WHERE type = 2;

모든 열을 변경하고 싶습니다.s:다음에 최대 3개의 숫자가 나옵니다.s:12

하지만 이걸 실행하면 다음과 같이 나옵니다.

Query OK, 10012 rows affected (0.118 sec)
Rows matched: 10375  Changed: 10012  Warnings: 0

왜 그런지 모르겠어요?변경되지 않은 항목과 그 이유를 확인할 수 있는 방법제 코드에 오류가 있나요?

또한 제가 이것을 두 번 실행하면 0이 변경되었다고 뜨지만, 제가 알기로는 이 코드는 모든 것을 다시 변경해야 합니다.s:12이미 그렇다 치더라도s:12아니면 제가 틀렸나요?

이것은 잘 작동합니다.

Update Table1 SET file_source = 
REGEXP_REPLACE (file_source, 's:[0-9]?[0-9]?[0-9]', 's:12') Where TYPE = 2;

s:1 s:31 및 s:111 포함

https://dbfiddle.uk/ ?rdbms=httpadb_10.4&httpdle=506350e8fa09b7270fb5e8e8b46c2e2f6f를 참조하십시오.

언급URL : https://stackoverflow.com/questions/57353743/why-my-sql-regexp-replace-is-not-changing-all-matches

반응형