Tema SQL
QUOTE() (MySQL / MariaDB)
Escapa una cadena para uso seguro como literal en sentencias dinámicas: antepone barra invertida a comillas y caracteres especiales según reglas del servidor.
Descripción
QUOTE(str) devuelve la cadena entre comillas simples con escapes. Es preferible usar parámetros preparados en aplicación antes que armar SQL con QUOTE; QUOTE ayuda en procedimientos almacenados o generación controlada. No sustituye a escape de identificadores (usa backticks). Comportamiento relacionado con sql_mode NO_BACKSLASH_ESCAPES.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
QUOTE(cadena)
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Prepared statements
- Primera opción contra inyección en aplicaciones.
- Identificadores
- Para tablas/columnas usa comillas invertidas o comillas dobles según modo ANSI.
Ejemplos
Ejemplo 1
SELECT QUOTE("O'Brien") AS seguro;
SELECT CONCAT('INSERT INTO t (n) VALUES (', QUOTE(@nombre), ')');
Ejemplo 2
SELECT CONCAT('INSERT INTO t VALUES (', QUOTE(@v), ');');
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.