마리아에 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
'source' 카테고리의 다른 글
| 모멘트 Js의 두 날짜 간의 시간 차이를 구합니다. (0) | 2022.11.22 |
|---|---|
| NOW() - 1 Day에서 레코드를 선택합니다. (0) | 2022.11.22 |
| PHP 날짜 현재 날짜로 5년 추가 (0) | 2022.11.22 |
| Python 제너레이터에서 "보내기" 함수의 목적은 무엇입니까? (0) | 2022.11.22 |
| 치명적인 오류: mysqld를 루트로 실행하는 방법에 대해서는 매뉴얼의 "보안" 섹션을 참조하십시오. (0) | 2022.11.22 |