PostgreSQL - 模糊查詢
阿新 • • 發佈:2019-03-01
~~ 開頭 www 語句 小寫 logs 表示 cnblogs 就是
即是ignore的意思。
前言
like、not like在SQL中用於模糊查詢,%
表示任意個字符,_
表示單個任意字符,如果需要在模糊查詢中查詢這兩個通配符,需要用ESCAPE
進行轉義,如下:
select * from table where name like '張/_小%' escape '/';
這裏表明/
作為轉義符,所以就可以在模糊查詢中將通配符作為普通字符來搜索。另外,因為左模糊查詢效率低下,一般不推薦在應用中去使用。
除了以上通用的like和not like,在PostgreSQL中還有特殊的操作符用於模糊查詢。
ilike
和not ilike
ilike
表示在模糊匹配字符串時不區分大小寫,i
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 - 模糊查詢