sql – xQuery LIKE-operator?

有没有办法用XQuery以与sql相同的方式执行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表达式

EDIT2:

解决了这个问题.你可以运行fn:not(starts-with(‘123′,’1’))并返回false.

解决方法

XPath 2.0和XQuery 1.0(由W3C标准化)具有匹配函数 http://www.w3.org/TR/xpath-functions/#func-matches的正则表达式支持
/user[matches(firstname,'xxx$')]

当然还有诸如starts-with和contains(都在XPath 1.0 / 2.0中)和ends-with(仅在XPath 2.0中)这些功能可能就足够了.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03