Saltar al contenido

mysql – Cómo manejar la búsqueda de consultas con caracteres especiales / (barra diagonal) y (barra invertida)

Solución:

Barmar es parcialmente correcto (entonces +1),

Entonces, el truco es hacer doble escape SOLO la barra invertida, para los escapes de cadena solo se necesita un escape.

Por ejemplo

  • La cita única ' solo necesita escapar una vez LIKE '%'%'
  • Pero para consultar la barra invertida necesitas doble escape para LIKE '%\\%'
  • Si desea consultar barra invertida + comilla simple ' luego LIKE '%\\'%' (con 5 barras invertidas)

Extracto de la fuente de explicación:

Debido a que MySQL usa la sintaxis de escape de C en cadenas (por ejemplo, ” n” para representar un carácter de nueva línea), debe duplicar cualquier “” que usas en cadenas LIKE. Por ejemplo, para buscar ” n”, especifíquelo como ” n”. Para buscar “”, especifíquelo como “\”; esto se debe a que las barras invertidas son despojado una vez por el analizador y de nuevo cuando se hace la coincidencia de patrón, dejando una sola barra invertida con la que comparar.

En MySQL, esto funciona:

select * from Table1
where column10 like '%abc\\def%'

VIOLÍN

La barra invertida es un prefijo de escape para cadenas y LIKE patrones. Entonces necesitas duplicarlo una vez por LIKEy nuevamente para la sintaxis literal de cadena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *