SQL萬用字元

2021-08-20 23:39:54 字數 2388 閱讀 8401

表結構描述:當前有一張表,此處假定node_info,存在乙個欄位node_path是由 『字母』、『數字』 及 『下劃線_』組成,如:abc_1_de_f

需求:查詢所有node_path以『abc_』開頭的記錄

這個問題,自然而然的就想到,很簡單,直接like % 模糊匹配就ok: 

[sql]view plain

copy

select * from mode_info where node_path like

'abc_%'

執行,發現結果根本就不對,遠遠超過預期。不僅abc_開頭的被查出來,abcd開頭等等的也被查詢命中。後來想了一下,突然記起'_'是萬用字元,也就是通常所說的佔位符。而萬用字元大家都知道,會匹配所有單一字元。所以也就意味著,上面的那個sql,會匹配到所有node_path長度大於等於4,且以abc開頭的所有記錄。

那麼,上面的需求該怎麼實現呢。很簡單:只要避免『_』在此處作為萬用字元存在即可。如何避免呢,那就需要用到另外乙個萬用字元''。修改sql:

[sql]view plain

copy

select * from mode_info where node_path like

'abc[_]%'

至此處,問題已解決。

下面簡單介紹下sql萬用字元。

萬用字元主要以下幾種:%_[^]

1. %:模糊匹配乙個或多個字元。如,以ab開頭

[sql]view plain

copy

select * from (  

select

'abc_2sd_38u'

'a'union

allselect

'bcf'

'a') c  

where c.a like

'ab%'

a-----------

abc_2sd_38u

2. _:佔位符,匹配任意乙個字元。如,以abc_開頭

[sql]view plain

copy

select * from (  

select

'abc_2sd_38u'

'a'union

allselect

'abcd_5d_3u'

'a'union

allselect

'abc'

'a') c  

where c.a like

'abc[_]%'a

-----------

abc_2sd_38u

3. :目標匹配字元:匹配單個字元,若寫了多個,匹配任一。如,所有以1或者2開頭的

[sql]view plain

copy

select * from (  

select

'1_21'

'a'union

allselect

'121'

'a'union

allselect

'131'

'a'union

allselect

'142'

'a'union

allselect

'223'

'a'union

allselect

'324'

'a') x  

where x.a like

'[12]%'a

-----------

1_21

121131

142223

4. [^]:目標匹配字元,相反。如,所有非1、2開頭的

[sql]view plain

copy

select * from (  

select

'1_21'

'a'union

allselect

'121'

'a'union

allselect

'131'

'a'union

allselect

'142'

'a'union

allselect

'223'

'a'union

allselect

'324'

'a') x  

where x.a like

'[^12]%'a

-----------

324

SQL萬用字元

1.下面的 sql 語句選取 url 以字母 https 開始的所有 2.下面的 sql 語句選取 url 包含模式 oo 的所有 select from websites where url like oo 3.下面的 sql 語句選取 name 以 g 開始,然後是乙個任意字元,然後是 o 然後...

sql 萬用字元

1.萬用字元。描述 在搜尋資料庫庫中的資料時,sql萬用字元可以替換乙個或多個字元。注意 sql萬用字元必須與like 運算子一起使用。萬用字元 描述 替代乙個或多個字元 僅替代乙個字元 charlist 字元列中的任何單一字元 charlist 或者 charlist 不在字元中的任何單一字元 案...

SQL 萬用字元

在搜尋資料庫中的資料時,您可以使用 sql 萬用字元。在搜尋資料庫中的資料時,sql 萬用字元可以替代乙個或多個字元。sql 萬用字元必須與 like 運算子一起使用。在 sql 中,可使用以下萬用字元 萬用字元描述 替代乙個或多個字元 僅替代乙個字元 charlist 字元列中的任何單一字元 ch...