sourcecode

MySQL 8의 REGEXP_REPLACE 문제

copyscript 2022. 9. 25. 00:17
반응형

MySQL 8의 REGEXP_REPLACE 문제

새로운 정규 표현 함수(https://dev.mysql.com/doc/refman/8.0/en/regexp.html)를 사용하여 많은 부정한 주소를 정리할 수 있도록 최근에 MySQL 8로 업그레이드했습니다.그러나 REGEXP_REPLACE를 사용하는 데 문제가 있습니다.

예를 들어 SELECT 쿼리를 실행하는 것으로 시작합니다(UPDATE 쿼리를 실행하기 전에 상황을 확인할 수 있습니다).

SELECT address1_raw, CONVERT(REGEXP_REPLACE (address1_raw, '^[0-9]+ ', '') 
USING UTF8) as replaced,
CONVERT(REGEXP_SUBSTR(address1_raw, '^[0-9]+ ') USING UTF8) as captured
FROM members WHERE REGEXP_LIKE (address1_raw, '^[0-9]+ ');

제가 원하는 결과는 다음과 같습니다.

address1_raw | replaced  | captured
54 Main St   | Main St   | 54
1089 High St | High St   | 1089
67 Broadway  | Broadway  | 67

대신, 난 이걸 이해한다.

address1_raw | replaced               | captured
54 Main St   | Main St                | 54
1089 High St | Main StHigh St         | 1089
67 Broadway  | Main StHigh StBroadway | 67

정말 당황스럽네요!여기서 무슨 일이 일어나고 있는지 알아?

언급URL : https://stackoverflow.com/questions/49988101/trouble-with-regexp-replace-in-mysql-8

반응형