2011-08-25 12 views

Respuesta

210

Utilice corchetes. Así que buscar 75%

WHERE MyCol LIKE '%75[%]%' 

Esto es más simple que escapar y común a la mayoría de los RDBMS

+2

También tenga en cuenta que no tiene que escapar de un símbolo de porcentaje en otras construcciones, como una función del usuario, la concatenación, etc. –

+3

[Puede proporcionar mejores estimaciones de cardinalidad (y, por lo tanto, planes de ejecución)]] (http://stackoverflow.com/a/18696341/73226) –

+1

También puede escapar del carácter comodín de subrayado: '[_]'. ¿Cómo escapas del corchete abierto entonces? Me gusta esto: '[[]'. http://www.sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-e-g-in-sql-server.html –

39

Puede usar la palabra clave ESCAPE con LIKE. Simplemente anteponga el carácter deseado (por ejemplo, '!') A cada uno de los signos % existentes en la cadena y luego agregue ESCAPE '!' (o su carácter de elección) al final de la consulta.

Por ejemplo:

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

Esto hará que la base de datos a tratar el 80% como una parte real de la cadena a buscar y no 80 (comodín).

MSDN Docs for LIKE

11
WHERE column_name LIKE '%save 50[%] off!%' 
Cuestiones relacionadas