2011-08-25 16 views

risposta

210

Utilizzare staffe. Quindi, per cercare un 75%

WHERE MyCol LIKE '%75[%]%' 

Questo è più semplice di ESCAPE e comune alla maggior parte degli RDBMS

+2

notare anche che non deve sfuggire un simbolo per cento in altri costrutti come ad esempio una funzione, la concatenazione, etc. –

+3

[Può fornire anche stime di cardinalità migliori (e quindi piani di esecuzione)] (http://stackoverflow.com/a/18696341/73226) –

+1

È anche possibile sfuggire anche al carattere jolly di sottolineatura: '[_]'. Come fai a sfuggire alla parentesi quadra aperta allora? Così: '[[]'. http://www.sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html –

39

È possibile utilizzare la parola chiave ESCAPE con LIKE. Basta anteporre il carattere desiderato (ad esempio "!") A ciascuno dei segni % esistenti nella stringa e quindi aggiungere ESCAPE '!' (o il carattere scelto) alla fine della query.

Ad esempio:

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

Questo renderà il database trattare l'80% come parte effettiva della stringa da cercare e non 80 (jolly).

MSDN Docs for LIKE

11
WHERE column_name LIKE '%save 50[%] off!%' 
Problemi correlati