Để thoát các ký tự đặc biệt trong biểu thức LIKE, bạn bắt đầu chúng bằng một ký tự thoát. Bạn có thể chọn thoát char sẽ sử dụng với từ khóa ESCAPE. (Tham khảo MSDN)
Ví dụ:điều này thoát khỏi biểu tượng%, sử dụng \ làm ký tự thoát:
select * from table where myfield like '%15\% off%' ESCAPE '\'
Nếu bạn không biết những ký tự nào sẽ có trong chuỗi của mình và bạn không muốn coi chúng là ký tự đại diện, bạn có thể đặt tiền tố tất cả các ký tự đại diện bằng một ký tự thoát, ví dụ:
set @myString = replace(
replace(
replace(
replace( @myString
, '\', '\\' )
, '%', '\%' )
, '_', '\_' )
, '[', '\[' )
(Lưu ý rằng bạn cũng phải thoát ký tự thoát của mình và đảm bảo rằng đó là replace
bên trong vì vậy bạn không thoát khỏi những cái được thêm vào từ replace
khác các câu lệnh). Sau đó, bạn có thể sử dụng một cái gì đó như sau:
select * from table where myfield like '%' + @myString + '%' ESCAPE '\'
Ngoài ra, hãy nhớ phân bổ nhiều không gian hơn cho biến @myString của bạn vì nó sẽ dài hơn khi thay thế chuỗi.