sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué necesito escapar dos veces (use 4 \) para encontrar una barra invertida (\) en SQL puro?

Escapas primero para la sintaxis de cadena, luego para LIKE sintaxis.

En LIKE caracteres % y _ tienen un significado especial, por lo que si desea buscar el literal % , necesitas usar \% , y si desea buscar el literal \% necesita escapar de la barra invertida como en \\% .

En sintaxis de cadena " obviamente tiene un significado especial, por lo que si desea incluir comillas en la cadena, debe escapar como \" , y para incluir el literal \" en la cadena tienes que escapar de la barra invertida como en \\" .

Entonces, en ambas sintaxis, debe escapar \ .

Si no desea utilizar \ para escapar del patrón LIKE, puede usar la palabra clave ESCAPE. Por ejemplo:

...  where test LIKE "a\\b%" ESCAPE '|';

De esta manera, deberás escribir |% , |_ o || para escapar de estos caracteres especiales.