2011-08-25 36 views

Trả lời

210

Sử dụng dấu ngoặc đơn. Vì vậy, để tìm kiếm 75%

WHERE MyCol LIKE '%75[%]%' 

Đây là đơn giản hơn ESCAPE và phổ biến với hầu hết các RDBMS

+2

cũng lưu ý bạn không cần phải thoát khỏi một biểu tượng phần trăm trong các cấu trúc khác như một chức năng sử dụng, nối vv –

+3

[Có thể cung cấp ước tính cardinality tốt hơn (và do đó thực hiện kế hoạch) quá] (http://stackoverflow.com/a/18696341/73226) –

+1

Bạn cũng có thể thoát ký tự đại diện gạch dưới: '[_]'. Làm thế nào để bạn thoát khỏi khung hình vuông mở sau đó? Như thế này: '[[]'. http://www.sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html –

39

Bạn có thể sử dụng từ khóa ESCAPE với LIKE. Chỉ cần thêm ký tự mong muốn (ví dụ: '!') Vào mỗi ký hiệu hiện tại % trong chuỗi và sau đó thêm ESCAPE '!' (hoặc ký tự bạn chọn) vào cuối truy vấn.

Ví dụ:

SELECT * 
FROM prices 
WHERE discount LIKE '%80!% off%' 
ESCAPE '!' 

Điều này sẽ làm cơ sở dữ liệu đối xử với 80% như một phần thực tế của chuỗi để tìm kiếm và không 80 (wildcard).

MSDN Docs for LIKE

11
WHERE column_name LIKE '%save 50[%] off!%' 
Các vấn đề liên quan