¿Cómo puedo escapar de los corchetes en una cláusula LIKE?

Resuelto Travis asked hace 15 años • 10 respuestas

Estoy intentando filtrar elementos con un procedimiento almacenado usando like . La columna es un varchar(15). Los elementos que intento filtrar tienen corchetes en el nombre.

Por ejemplo: WC[R]S123456.

Si hago un LIKE 'WC[R]S123456'no me devolverá nada.

Encontré información sobre el uso de la ESCAPEpalabra clave with LIKE, pero ¿cómo puedo usarla para tratar los corchetes como una cadena normal?

Travis avatar Jan 13 '09 22:01 Travis
Aceptado
LIKE 'WC[[]R]S123456' 

o

LIKE 'WC\[R]S123456' ESCAPE '\'

Deberia trabajar.

Otávio Décio avatar Jan 13 '2009 15:01 Otávio Décio

Digamos que quieres hacer coincidir el literal its[brac]et.

No es necesario escapar de ya ]que tiene un significado especial sólo cuando se combina con [.

Por lo tanto, escapar [es suficiente para resolver el problema. Puedes escapar [ reemplazándolo con [[] .

Amitesh avatar Jan 18 '2011 09:01 Amitesh

Necesitaba excluir de una consulta los nombres que comenzaban con un guión bajo, así que terminé con esto:

WHERE b.[name] not like '\_%' escape '\'  -- use \ as the escape character
Andrew avatar Apr 30 '2009 23:04 Andrew

Esto es lo que realmente usé:

like 'WC![R]S123456' ESCAPE '!'
Travis avatar Jan 13 '2009 16:01 Travis