source

마리아에 REGEXP_REPLACE 함수가 없습니다.DB

bestscript 2022. 11. 22. 09:31

마리아에 REGEXP_REPLACE 함수가 없습니다.DB

운영 서버 아래에 있는 MariaDB Server 버전 5.5를 사용하고 있습니다.
로컬에서는 MariaDB 10.1을 사용하고 있습니다.

현재 로컬에서 REGEXP_REPLACE 함수를 사용하려고 합니다만, 실가동 서버에서는 REGEXP_REPLACE 함수가 존재하지 않습니다.에러가 발생했습니다.

그 후 REGEXP_REPLACE 기능이 MariaDB 10.0.5 이상 버전에서만 지원된다는 것을 알게 되었습니다.

5.5 버전의 REGEXP_REPLACE 기능에 도달할 수 있는 방법이 있습니까?

5.5에는 옵션이 없는 것 같아요!

그러나 5.5에서 10으로 업그레이드하기 위해 필요한 단계를 확인할 수 있습니다.

권장되지 않는 다른 옵션은 sql 내에서 regex를 검색하고 애플리케이션 코드 내에서 regex 치환을 수행하는 것입니다.

네, 사용자 정의 함수(또는 줄여서 UDF)를 사용하면 됩니다.C/C++ 개발에 대해 잘 알고 있어야 합니다.공유 라이브러리/DLL을 컴파일하여 플러그인 디렉토리에 드롭하고 CREATE FUNTION을 실행합니다.SONAME myfunc.so에서 MySQL을 확장했습니다.

https://dev.mysql.com/doc/refman/5.6/en/adding-udf.html 에서는 프로세스에 대한 설명을 제공하고 소스 코드에는 일부 UDF의 예가 있습니다(:https://github.com/MariaDB/server/blob/10.1/sql/udf_example.c )

물론 이는 SQL에서 동일한 기능을 가진 쓰기 저장 기능이 쉽지 않은 경우에만 적절합니다(이 경우 해당됩니다).

언급URL : https://stackoverflow.com/questions/40590852/regexp-replace-function-not-exist-in-mariadb