我有如下表結構,我的數據庫奇怪的行爲
ID Name
--------------------------
ID_1 Name1
ID1 Name2
當我執行
SELECT * FROM tblNames
WHERE ID LIKE '_1'
我獲得選擇兩個記錄下面的查詢......
任何建議如何擺脫它?
我有如下表結構,我的數據庫奇怪的行爲
ID Name
--------------------------
ID_1 Name1
ID1 Name2
當我執行
SELECT * FROM tblNames
WHERE ID LIKE '_1'
我獲得選擇兩個記錄下面的查詢......
任何建議如何擺脫它?
下劃線(_
)是LIKE表達式中與單個字符匹配的特殊字符。
要符合實際的下劃線,你需要逃避它:
select * from tblNames where id like '%\_1' escape '\'
在這裏,我要告訴SQL Server來考慮反斜槓轉義字符,並用它來逃脫下劃線。
或者,你可以代表下劃線的字符範圍在它的單個字符 - 它會從字面上在這種情況下進行解釋:
select * from tblNames where id like '%[_]1'
哪個更簡潔一點。
參考:MSDN。
SELECT * FROM tblNames WHERE ID LIKE '[_]1'
下劃線字符是like
運算符的通配符,它匹配任何一個字符。在你的情況下,模式'_1'與數據中的'_1'和'D1'都匹配。
SELECT * FROM tblNames
WHERE ID LIKE '[_]1'
:
爲了使之成爲只包含一個字符的字符範圍內使用,你需要把它周圍的支架圖案的文字下劃線