码迷,mamicode.com
首页 > 数据库 > 详细

sql like谓语注意事项

时间:2020-03-22 17:26:17      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:http   com   where   oracl   mic   cte   tab   doc   tps   

like谓语

sql的like谓语可以使用模式去匹配特定的字符,用于过滤数据,语法形式如下:

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]
  • match_expression是任意合法的表达式,如字段名称等。
  • pattern是用于搜索字符串的匹配模式,可以包含合法的通配符,一般数据库都支持的通配符有%_,其中%匹配0个或者多个字符,_匹配一个字符。此外sql server数据库的like谓语还可以使用通配符[][^],但是oracle和mysql的like谓语却不支持,oracle可以使用REGEXP_LIKE
  • escape_character是指定的转义字符,如sqlselect * from Product where name like ‘\%C%‘ escape ‘\‘指定了\作为转义字符,\之后的一个字符就是普通的字符,不再作为通配符进行匹配,那么这个匹配搜索的字符串就是以%C开头的字符串。

注意

在实际使用like谓语时需要注意通配符需要转义的问题,不管是从存储时进行转义还是查询时转义,否则就会出现实际查询结果和预期结果不一致的问题。
在sql server中如我们有如下的数据
技术图片
我们通过前台查询,想要得到以 通知[2019] 开头的数据,如果我们通过select * from Product where name like ‘%通知[2019]%‘这样的sql去查询数据,那么得到的结果如下,和明显这不是我们想要的结果。
技术图片
因为在sql server中[]属于谓语like的通配符,是需要进行转义的,将sql改写为select * from Product where name like ‘%通知\[2019\]%‘ escape ‘\‘即可得到如下的正确结果。
技术图片

参考

sql like谓语注意事项

标签:http   com   where   oracl   mic   cte   tab   doc   tps   

原文地址:https://www.cnblogs.com/ZiYangZhou/p/12547049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!