模糊查询like_PostgreSQL模糊查询(~ like ilike)使用区别

6af92117a19d086f8cd933be77c0e09e.png

在PostgreSQL数据库中,~、like、ilike都可以用于模糊查询,本文简单介绍三者使用区别。

like

标准的模糊查询,支持%(任意个字符),_(任意单个字符),并区分大小写,使用实例:

select 'abcDEF' like '%cD%'; -- trueselect 'abcDEF' like '%cd%'; -- falseselect 'abcDEF' like '%c_E%'; -- trueselect 'abcDEF' like '_bcDE_'; -- true

ilike

与like使用方式相似,前面的i代表ignore,即与like的区别就是忽略大小写:

select 'abcDEF' like '%cd%'; -- true

~

~ 相关的表示正则匹配,当然也可以用来做模糊查询。可使用的方式有:~,~*,!~,!~*。

-- 正则匹配,区分大小写(~)select 'abcDEF' ~ 'cD'; -- trueselect 'abcDEF' ~ 'cd'; -- falseselect 'abcDEF' ~ '^[a-z]'; -- trueselect 'abcDEF' ~ '[a-z]$'; -- false-- 取反(!~)select 'abcDEF' !~ 'cD'; -- falseselect 'abcDEF' !~ '^[a-z]'; -- false-- 不区分大小写(~*)select 'abcDEF' ~* 'cd'; -- trueselect 'abcDEF' ~* '[a-z]$'; -- true-- 不区分大小写并且取反(!~*)select 'abcDEF' !~* 'cd'; -- false

~~

上面说的是一个~的操作符,代表正则匹配。PostgreSQL中还可以使用两个~(~~),两个~就和like的意义一样,并且也有对应的:~~,~~*,!~~,!~~*。

~~对应like,~~*对应ilike,!~~对应not like,!~~*对应not ilike。

select 'abcDEF' ~~ 'cD'; -- falseselect 'abcDEF' ~~ '%cD%'; -- trueselect 'abcDEF' ~~ '%cd%'; -- falseselect 'abcDEF' ~~* '%cd%'; -- trueselect 'abcDEF' !~~* '%cd%'; -- false

点击下方“了解更多”,获取更多技术干货!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值