PGSQL中的LIKE,ILIKE,SIMILAR TO的使用

概述

  这里主要时对模糊查询进行一些稍微细粒度的说明,更细力度的可能就需要各位看官各自去查询了。模糊查询只要是使用数据库,做开发的基本上都会知道这个LIKE。但是今天要进行说明的是PGSQL的模糊查询,PGSQL在很多地方都进行了功能的扩展(我猜想主要是由于开源的功劳)。

  PGSQL的模糊查询有LIKE,ILIKE,SIMILAR TO以及一些运算符。(LIKE我们常用的模糊查询;ILIKE不区分大小写的模糊查询;SIMILAR TO可以使用正则表达式的模糊查询)

LIKE

select *from sys_dict where dict_name LIKE %ALIYUN%;

 like的模糊查询,‘_’是一个字符占位符,‘%’是多字符占位符。这个的查询区分大小写。

select *from sys_dict where dict_name ~~ %ALIYUN%;

‘~~’ 和 ‘LIKE’等效。
‘!~~’ 和 ‘NOT LIKE’ 等效。

ILIKE

select *from sys_dict where dict_name ilike %ALIYUN%

 和LIKE一样的使用方式,但是这个查询不区分大小写。

select *from sys_dict where dict_name ~~* %ALIYUN%;

‘~~*’ 和 ‘ILIKE’等效。
‘!~~*’ 和 ‘NOT ILIKE’ 等效。

SIMILAR TO

select *from sys_dict where dict_name SIMILAR TO S*ALIYUNS*;

  可以使用正则表达式查询。

select *from sys_dict where dict_name ~ S*ALIYUNS*;

POSIX正则表达式的模式匹配操作符有以下几种:
(1)~ :匹配正则表达式,区分大小写。
(2)~* : 匹配正则表达式,不分大小写。
(3)!~:不匹配正则表达式,区分大小写。
(4)!~* :不匹配正则表达式,不分大小写。
经验分享 程序员 微信小程序 职场和发展