Bạn có hai lựa chọn:
-
gửi chúng vào
[
và]
. Vì vậy:where pattern like '[%]'
Tìm ký tự phần trăm. Danh sách đầy đủ các ký tự cần thoát -
'_', '%', '[', ']'
với các thay thế tương ứng'[_]', '[%]', '[[]', '[]]'
. Bạn có thể tìm thấy mã mẫu trong Thoát ký tự thoát không hoạt động - Toán tử SQL LIKE -
sử dụng một ký tự thoát không có trong chuỗi, chẳng hạn như một backtick:
where pattern like '`%' escape '`'
(Xem cú pháp trên MSDN - LIKE (Giao dịch-SQL) .)
Trong cả hai trường hợp, tôi khuyên bạn nên thực hiện thay thế trong lớp ứng dụng, nhưng bạn cũng có thể thực hiện trong SQL nếu bạn thực sự muốn:
where pattern like replace(@pattern, '%', '[%]')
Và, cấp cho người dùng cuối quyền truy cập vào các ký tự đại diện có thể là một điều tốt về mặt giao diện người dùng.
Lưu ý:có thêm vài ký tự đặc biệt '-'
và '^'
trong truy vấn LIKE, nhưng chúng không cần phải được thoát nếu bạn đã thoát '['
và ']'
.