我正在使用MonetDB进行一些测试。
我正在尝试执行的查询的要点(使用借用的语法)如下所示:
SELECT mystring FROM mytable WHERE mystring REGEXP 'myxpression';
MonetDB不支持这种语法,但文档声称它支持PCRE,因此可能可能,但语法仍然存在。
答案 0 :(得分:0)
检查Does MonetDB support regular expression predicates?
实现是在MonetDB后端,即模块 实现它是pcre(可以在MonetDB5源代码树中找到)。 我不确定它是否默认来自MonetDB / SQL。
如果没有,使用这两个函数定义,可以将SQL函数链接到 MonetDB5中各自的实现:
-- case sensitive create function pcre_match(s string, pattern string) returns BOOLEAN external name pcre.match;
-- case insensitive create function pcre_imatch(s string, pattern string) returns BOOLEAN external name pcre.imatch;
If you need more, I'd suggest to have a look at MonetDB5/src/modules/mal/ pcre.mx in the source code.
使用
select name from sys.functions;
检查函数是否存在,否则您需要创建它。
例如,您可以像这样使用pcre_imatch()
:
SELECT mystring FROM mytable WHERE pcre_imatch(mystring, 'myexpression');