加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – xQuery LIKE-operator?

发布时间:2020-12-12 08:41:48 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法用XQuery以与SQL相同的方式执行LIKE操作? 我不想构建一些“startswith”,“endswith”和“contains” – 表达式. 我想要实现的例子: for $x in /user where $x/firstname LIKE '%xxx' return $xfor $x in /user where $x/middlename LIKE 'xxx%'
有没有办法用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中)这些功能可能就足够了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读