2016-11-14 88 views
0
不存在

我使用MariaDB的服务器版本5.5是在我的生产服务器
并在当地我使用MariaDB的10.1
REGEXP_REPLACE功能MariaDB的

现在我尝试使用REGEXP_REPLACE功能在当地很工作正常,但是当我在生产服务器上使用我REGEXP_REPLACE功能不存在错误

后来我才知道REGEXP_REPLACE功能将仅适用于MariaDB的10.0.5及以上版本的支持。

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

+1

一般来说:如果数据库服务器版本中不存在函数,则无法使其可用。具体来说:请包括您想要修改的数据的代表性示例,以及您当前使用的正则表达式。也许现有的字符串函数可以用来实现相同的结果。 – Tomalak

+0

这就是为什么开发环境应密切关注生产环境的一个主要例子。 – gabe3886

回答

0

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

您可以查看但是从5.5升级到10

另外,非推荐的选择将搜索中的SQL正则表达式所需的steps,做正则表达式的应用程序代码中替换。

0

是的,你可以使用用户定义函数(或简称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相同的功能容易写入存储功能(在这种情况下,我会说这是真的)