sql server特殊字符查詢問題及ESCAPE的使用

公司一個老項目,sql server的web

模糊查詢時,查詢條件包含 [] ,而後查詢結果就一直爲空sql

查閱資料得知:若是 LIKE 模式中的轉義符後面沒有字符,則該模式無效而且 LIKE 返回 FALSE。若是轉義符後面的字符不是通配符,則將放棄轉義符並將該轉義符後面的字符做爲該模式中的常規字符處理。這包括百分號 (%)、下劃線 (_) 和左括號 ([) 通配符(若是它們包含在雙括號 ([ ]) 中)。spa

 

下面講下sql腳本檢索中,檢索特殊字符的方法code

使用escape轉義關鍵字的用法server

CREATE TABLE test (info VARCHAR(50))
GO
INSERT INTO test
VALUES ('[web.]maomao365.com'),
('web.maomao365.com')
GO

select * from test where info like '%[web.]%'
---輸出2行數據,like條件中[]被界定爲包含

SELECT * FROM test 
WHERE info LIKE  '%\[address.]%' 
---採用斜槓相似轉義,可是轉義失敗,返回空數據行
go
SELECT * FROM test
WHERE info LIKE '%$[web.]%' ESCAPE '$'


SELECT * FROM test
WHERE info LIKE '%@[web.]%' ESCAPE '@'
---採用escape 定義 @ $爲以上sql腳本的轉義字符

go

drop table test 

相關文章
相關標籤/搜索