PostgreSQL - 模糊查詢


前言

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。

參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM