
在 PostgreSQL 数据库中,~、LIKE、ILIKE 都可以用于模糊查询,本文简单介绍三者使用区别。
LIKE
标准的模糊查询,支持 %(任意个字符),_(任意单个字符),并区分大小写,使用实例:
1 | select 'abcDEF' like '%cD%'; -- true |
ILIKE
与 LIKE 使用方式相似,前面的 i 代表 ignore,即与 LIKE 的区别就是忽略大小写:
1 | select 'abcDEF' like '%cd%'; -- true |
~
~ 相关的表示正则匹配,当然也可以用来做模糊查询。可使用的方式有:~,~*,!~,!~*。
1 | -- 正则匹配,区分大小写(~) |
~~
上面说的是一个~ 的操作符,代表正则匹配。PostgreSQL 中还可以使用两个~(~~),两个~ 就和 like 的意义一样,并且也有对应的:~~,~~*,!~~,!~~*。
~~ 对应 LIKE,~~* 对应 ILIKE,!~~ 对应 NOT LIKE,!~~* 对应 NOT ILIKE。
1 | select 'abcDEF' ~~ 'cD'; -- false |