小编典典

xQuery LIKE运算子?

sql

有什么方法可以像使用SQL一样用XQuery执行LIKE操作吗?

我不会构造一些“ startswith”,“ endswith”和“ contains”表达式。

我要实现的示例:

for $x in /user where $x/firstname LIKE '%xxx' return $x
for $x in /user where $x/middlename LIKE 'xxx%' return $x 
for $x in /user where $x/lastname LIKE '%xxx%' return $x

有什么方法可以在XQuery中实现这一目标吗?

编辑:

得到了以上问题的答案。新问题:

是否有任何相反的方法可以做到这一点?我想使用与SQL等效的NOT LIKE运算符运行那些查询。这可能吗?它必须在FLWOR表达式中

编辑2:

解决了问题。您可以运行fn:not(starts-with(‘123’,‘1’))并返回false。


阅读 162

收藏
2021-04-22

共1个答案

小编典典

XPath 2.0和XQuery 1.0(由W3C标准化)具有使用matches函数http://www.w3.org/TR/xpath-
functions/#func-matches的正则表达式支持:

/user[matches(firstname, 'xxx$')]

当然,还有诸如starts-withcontains(在XPath 1.0 / 2.0中都是)和ends-with(仅在XPath
2.0中)这样的函数可能就足够了。

2021-04-22