MariaDB中不存在REGEXP_REPLACE函数

时间:2016-11-14 14:17:40

标签: mysql mariadb

我正在使用我的生产服务器下的MariaDB Server Version 5.5 在本地我正在使用MariaDB 10.1

现在我正在尝试在本地使用REGEXP_REPLACE函数它工作正常,但是当我以前在生产服务器中我得到 REGEXP_REPLACE函数不存在错误

然后我开始知道REGEXP_REPLACE函数将仅支持MariaDB 10.0.5及更高版本。

有没有办法在5.5版本下达到REGEXP_REPLACE功能?

2 个答案:

答案 0 :(得分:1)

是的,您可以使用用户定义的函数(或简称UDF)来实现。您需要熟悉C / C ++开发。编译共享库/ DLL,将其放入插件目录,执行CREATE FUNCTION ... 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编写具有相同功能的存储函数并不容易(在这种情况下我会说是正确的)

答案 1 :(得分:0)

我认为5.5中没有任何选项!

但是,您可以检查从{5.5升级到10升所需的steps

另一个非推荐选项是在sql中搜索regex并在应用程序代码中替换正则表达式。