你知道如何在使用 LIKE 的時候,去查詢 %, [, ], _ 這類的萬用字元嗎? 看看我寫的說明吧。
1. 比對規則
萬用字元
% 任何含有零或多個字元的字串。
_ 任何單一字元。
[ ] 在指定範圍 ([a-f]) 或集合 ([abcdef]) 中的任何單一字元。
[^] 不在指定範圍 ([^a-f]) 或集合 ([^abcdef]) 中的任何單一字元。
e.g.
SELECT * FROM table1 WHERE field LIKE '%[1234567890]%'
代表任何有 0-9 的字元出現就算符合!
2. 若要 escape 特定字元可以用以下語法 ( 如:查詢字元中有百分比符號的字元)
這是放在萬用字元前面的字元,用來指示應該將萬用字元解譯成正規字元而不是萬用字元。escape_character 是沒有預設值的字元運算式,只能得出一個字元。
SELECT * FROM table1 WHERE field LIKE '%![1234567890!]%' ESCAPE '!'
select * from table1 where field1 like '%My\\_Name%' escape '\\'
這代表指定「逸出字元 (Escape Character)」為何,在 pattern 中出現在「逸出字元」後面的字元可以跳開「萬用字元」的功能!!
Reference:
Using SQL Escape Sequences
http://msdn2.microsoft.com/en-us/library/ms378045.aspx
使用 SQL 逸出序列
http://msdn2.microsoft.com/zh-tw/library/ms378045.aspx
LIKE (Transact-SQL)
http://msdn2.microsoft.com/zh-tw/library/ms179859.aspx