1. 程式人生 > >PostgreSQL - 模糊查詢

PostgreSQL - 模糊查詢

~~ 開頭 www 語句 小寫 logs 表示 cnblogs 就是

前言

like、not like在SQL中用於模糊查詢,%表示任意個字符,_表示單個任意字符,如果需要在模糊查詢中查詢這兩個通配符,需要用ESCAPE進行轉義,如下:

select * from table where name like '張/_小%' escape '/';

這裏表明/作為轉義符,所以就可以在模糊查詢中將通配符作為普通字符來搜索。另外,因為左模糊查詢效率低下,一般不推薦在應用中去使用。

除了以上通用的like和not like,在PostgreSQL中還有特殊的操作符用於模糊查詢。

ilikenot ilike

ilike表示在模糊匹配字符串時不區分大小寫,i

即是ignore的意思。

not ilike表示不模糊匹配字符串且不區分大小寫。

~~*!~!~*

~表示匹配正則表達式,且區分大小寫。

~*表示匹配正則表達式,且不區分大小寫。

可以通過這兩個操作符來實現like和ilike一樣的效果,如下:

1.匹配以“張”開頭的字符串
select * from table where name ~ '^張';

2.匹配以“小”結尾的字符串
select * from table where name ~ '小$';

其實這裏的^和$就是正則表達式裏的用法。

!~~的否定用法,表示不匹配正則表達式,且區分大小寫。

!~*~*的否定用法,表示不匹配正則表達式,且不區分大小寫。

~~~~*!~~!~~*

~~等效於like,~~*等效於ilike。

!~~等效於not like,!~~*等效於not ilike。

參考鏈接

  • postgresql數據庫中~和like和ilike的區別
  • postgreSQL sql語句中的~~符號是什麽意思

PostgreSQL - 模糊查詢