Tengo un campo de texto para aceptar expresiones regulares de la interfaz de usuario. Para estas expresiones regulares, tengo una función de búsqueda y quiero hacer una búsqueda. Estoy usando declaraciones preparadas y la base de datos es mysql. Cuando realizo una búsqueda en '%', solo quiero buscar expresiones regulares comenzando con '%'. Pero, como '%' es comodín en mysql, obtengo todas las expresiones regulares en la búsqueda. Cómo escapar de esoCómo escapar de los caracteres especiales de SQL en la expresión regular en Mysql
6
A
Respuesta
8
sólo tiene que utilizar una barra invertida delante del carácter, como se muestra en la :
\0 An ASCII NUL (0x00) character.
\' A single quote ("'") character.
\" A double quote (""") character.
\b A backspace character.
\n A newline (linefeed) character.
\r A carriage return character.
\t A tab character.
\Z ASCII 26 (Control+Z). See note following the table.
\\ A backslash ("\") character.
\% A "%" character. See note following the table.
\_ A "_" character. See note following the table.
Nota (a partir de la documentación de MySQL):
Si utiliza "\%" o "\ _ "fuera de los contextos de coincidencia de patrones, evalúan las cadenas" \% "y" \ _ ", no a"% "y" _ ".
1
Si está usando PHP, usted puede escapar%, _ y personajes utilizando este código:
$escaped = addcslashes($str, "%_");
El \ (barra invertida) y comillas por supuesto también debe escapar (como siempre Para evitar! Inyección SQL), por ejemplo por mysql_real_escape_string()
.
Cuestiones relacionadas
- 1. ¿Cómo puedo escapar de los caracteres especiales en MySQL?
- 2. Escapar caracteres especiales en SQL
- 3. Escapar caracteres especiales en Perl regex
- 4. Cómo escaparse correctamente de los caracteres en la expresión regular
- 5. Escapar caracteres especiales en Java Expresiones regulares
- 6. Expresión regular para excluir caracteres especiales
- 7. Escapar caracteres especiales en cmd
- 8. Expresión regular incluye y excluye caracteres especiales
- 9. ¿Cómo escapar caracteres especiales HTML en Java?
- 10. expresión regular para encontrar caracteres especiales en Java
- 11. Caracteres especiales en PHP/MySQL
- 12. ¿Cómo puedo escapar de caracteres especiales en una cadena que interpolar en una expresión regular de Perl?
- 13. Perl expresión regular cómo escapar sólo algunos caracteres
- 14. Javascript validación de contraseña expresión regular que tiene caracteres especiales
- 15. ¿Cómo manejo los caracteres especiales en una expresión regular de Perl?
- 16. ¿Cómo escapar de la expresión regular en javascript?
- 17. Expresión regular: tomar literalmente cadena con caracteres especiales re-
- 18. ¿Cómo escapar de una cadena previamente desconocida en la expresión regular?
- 19. regex: ¿cómo escapar barras diagonales inversas y caracteres especiales?
- 20. Cadenas literales sin tener que escapar de los caracteres especiales?
- 21. cómo escapar caracteres especiales en .gitconfig proxy autenticación
- 22. hacer caracteres opcionales en la expresión regular
- 23. ¿Cómo escapar de los caracteres especiales de expresiones regulares usando javascript?
- 24. caracteres especiales en MySQL Nombre de la tabla
- 25. Búsqueda de expresión regular de Mysql sin caracteres repetitivos
- 26. ¿Escape los caracteres especiales en RegEx?
- 27. Caracteres especiales de escape de Python
- 28. expresión regular: extraer los últimos 2 caracteres
- 29. expresión regular sin caracteres
- 30. Caracteres especiales en los selectores CSS
Quiero incluso escapar de los otros comodines mysql como '_'. – Daemonthread
¿estás hablando de expresiones regulares o del operador LIKE? Porque% no es un personaje especial en expresiones regulares. Por favor edite su pregunta para ser más claro. Y/o, escriba la condición SQL que desea usar como ejemplo. – TMS
Estoy almacenando las expresiones regulares en la base de datos. Y estoy usando el operador LIKE en SQL para buscar la expresión regular. Ejemplo sql: "Seleccionar expresión de REGEX donde la expresión LIKE '%';". Quiero usar% en el sql como caracter normal. – Daemonthread