sql模糊查詢:普通字元查詢、特殊字元查詢
模糊查詢的一般格式:
select 字段 from 表 where 某欄位 like 條件;1、%:表示零個或多個字元。
例如:select * from flow_user where username like 『%王%』;2、_:表示任意單個字元。匹配單個任意字元,它常用來限制表示式的字元長度:將會把flow_user這張表裡面,列名username中還有「王」的記錄全部查詢出來。
例如:select * from flow_user where username like 『英『;3、:表示括號內所列字元中的乙個(類似正規表示式)。指定乙個字元、字串或範圍,要求所匹配的物件為他們中的任乙個只能找到「王英琨」這樣username為三個字且中間乙個字是「英」的內容。
例如:select * from flow_user where username like』[王李張]飛』;4、[^]:表示不在括號所列之內的單個字元。其取值 和 相同,但它所要求匹配物件為指定字元以外的任乙個字元。將找出「王飛」「李飛」「張飛」(而不是「張王李飛」)。
如內有一系列字元(01234,abcde之類的)則可略寫為「0-4」,「a-e」:
select * from flow_user where username like 『老[0-9]』;
將找出「老1」、「老2」、……、「老9」
select * from flow_user where username like』[^王李張]飛』;下面講解包含特殊字元的模糊查詢:將找出不是「王飛」「李飛」「張飛「的」趙飛「、」吳飛「等。
1 . sql對like 操作中的特殊字元處理方法:
sql server查詢過程中,單引號 ' 是特殊字元,所以在查詢的時候要轉換成雙單引號 '' 。
在like操作還有以下特殊字元:下劃線_,百分號%,方括號,尖號^。
其用途如下:
下劃線:用於代替乙個任意字元(相當於正規表示式中的 ? )
百分號:用於代替任意數目的任意字元(相當於正規表示式中的 * )
方括號:用於轉義(事實上只有左方括號用於轉義,右方括號使用最近優先原則匹配最近的左方括號)
尖號:用於排除一些字元進行匹配(這個與正規表示式中的一樣)
以下是一些匹配的舉例,需要說明的是,只有like操作才有這些特殊字元,
=操作是沒有的。
a_b... a[_]b%
a%b... a[%]b%
a[b... a[b%
a]b... a]b%
ab... ab%
a[^]b... a[[^]]b%
a[^^]b... a[[^][^]]b%
2,sql like 萬用字元特殊用法:escape
闡述escape 的作用:
1.使用 escape 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,
該萬用字元就解釋為普通字元。
例如,要搜尋在任意位置包含字串 5% 的字串,請使用:
where columna like '%5/%%' escape '/'
但是在mysql中好像不能使用"\"。
2.escape 'escape_character'
允許在字串中搜尋萬用字元而不是將其作為萬用字元使用。
escape_character 是放在萬用字元前表示此特殊用途的字元。
select *
from finances
where description like
'gs_'
escape
's'go
意思就是:
比如,我們要搜尋乙個字串 "g_" ,
如果直接 like
"g_",那麼 "_"的作用就是萬用字元,而不是字元,
結果,我們會查到比如 "ga","gb","gc",而不是我們需要的 "g_".
用 like
'gs_'
escape
's''s'表示特殊用法標誌
參考: SQL之模糊查詢
一般模糊查詢語句如下 select 字段 from 表 where 某欄位 like 條件 其中關於條件,sql提供了四種匹配模式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name l...
cad模糊查詢符號 SQL 模糊查詢之特殊字元
1.sql like對時間查詢 時間格式的資料為各種各樣,不方便查詢。在使用like模糊查詢時,先將資料轉換為統一的格式,這樣在使用like查詢時就方便多了。2.sql like對特殊字元 在sql查詢過程中,動態sql,需將字元資料的單引號 改為兩個單引號 而在模糊查詢中,需使用萬用字元來匹配資料...
sql 模糊查詢
一般模糊語句如下 select 字段 from 表 where 某欄位 like 條件 其中關於條件,sql提供了四種匹配模式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name lik...