source

MariaDB REGEXP_REPLACE 백레퍼런스가 FUNCTION에서 작동하지 않음

manysource 2023. 9. 2. 08:36

MariaDB REGEXP_REPLACE 백레퍼런스가 FUNCTION에서 작동하지 않음

나는 다음과 같은 간단한 표현을 가지고 있습니다.

SELECT REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0'));
+-------------------------------------------------------------------------+
| REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0')) |
+-------------------------------------------------------------------------+
| aaa 00000000123 bbb 00000000456 ccc                                     |
+-------------------------------------------------------------------------+

하지만 제가 이것을 함수에 넣으면,

CREATE FUNCTION test()
RETURNS VARCHAR(4000)
BEGIN
       RETURN REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0'));
END

작동하지 않습니다.

SELECT test();
+-----------------------------------+
| test()                           |
+-----------------------------------+
| aaa 0000000001 bbb 0000000001 ccc |
+-----------------------------------+

어떻게 고칠 수 있나요? (10.1.38-MariaDB-0+deb9u1)

사용하다'\1'대신에'\\1'....

언급URL : https://stackoverflow.com/questions/57500467/mariadb-regexp-replace-backreferences-not-works-in-function