版權聲明:轉載請註明作者(獨孤尚良dugushangliang)出處:https://blog.csdn.net/dugushangliang/article/details/105047395
下圖來自於https://www.runoob.com/sql/sql-wildcards.html,我們會有下圖的認知,由此寫出模糊查詢的語句。
但查詢地址中是否含有幾號,則沒有成功,經查驗,這是因爲pgsql的like只支持%和_這兩個通配符的特性。匹配字母的[a-zA-Z]和匹配數字的[0-9]則不可用於like。
--起初在pgsql中是這麼寫的,沒有結果,不符合預期
select * from total where addname like '%[0-9]+號_%'
--經查詢,pgsql的like只支持%和_這兩個通配符
--匹配數字用到的[]不能用於like,而是SIMILAR TO
select * from total where addname similar to '%[0-9]+號_%'
從http://postgres.cn/docs/11/functions-matching.html摘錄了部分內容 如下:
-
|
表示選擇(兩個候選之一)。 -
*
表示重複前面的項零次或更多次。 -
+
表示重複前面的項一次或更多次。 -
?
表示重複前面的項零次或一次。 -
{
m
}
表示重複前面的項剛好m
次。 -
{
m
,}
表示重複前面的項m
次或更多次。 -
{
m
,
n
}
表示重複前面的項至少m
次並且不超過n
次。 -
可以使用圓括號
()
把多個項組合成一個邏輯項。 -
一個方括號表達式
[...]
聲明一個字符類,就像 POSIX 正則表達式一樣。
注意點號(.
)不是SIMILAR TO
的一個元字符。
獨孤尚良dugushangliang——著