En MariaDB, JSON_UNQUOTE()
es una función integrada que elimina las comillas de un valor JSON. En otras palabras, "elimina las comillas" de un valor JSON.
Sintaxis
La sintaxis es así:
JSON_UNQUOTE(val)
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT JSON_UNQUOTE('"Eggs"');
Resultado:
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
Personajes de escape
Si el valor contiene un carácter de barra invertida (\
), generalmente se ignora. Sin embargo, ciertas secuencias que involucran la barra invertida pueden tener un significado especial y pueden afectar el resultado de JSON_UNQUOTE()
.
Esto dependerá de si el modo SQL está configurado o no en NO_BACKSLASH_ESCAPES
. Cuando el modo SQL se establece en NO_BACKSLASH_ESCAPES
, esto deshabilita el uso del carácter de barra invertida como carácter de escape dentro de las cadenas, haciéndolo equivalente a un carácter normal.
De lo contrario, las siguientes secuencias se cumplirán:
Secuencia de escape | Personaje |
---|---|
\" | Comillas dobles (" ) |
\b | barra invertida |
\f | Formfeed |
\n | Nueva línea (salto de línea) |
\r | Retorno de carro |
\t | Pestaña |
\\ | barra invertida (\ ) |
\uXXXX | UTF-8 bytes para valor Unicode XXXX |
Ejemplo:
SELECT JSON_UNQUOTE('Feeling\tGood');
Resultado:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Aquí, usé el \t
secuencia para agregar un carácter de tabulación dentro de la cadena.
Si configuro el modo SQL en NO_BACKSLASH_ESCAPES
, la secuencia no tiene un significado especial y la secuencia literal se incluye en la salida sin interpretación:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
Resultado:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling\tGood | +-------------------------------+
Argumentos nulos
Si el argumento es NULL
, el resultado es NULL
:
SELECT JSON_UNQUOTE(null);
Resultado:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Recuento de parámetros incorrecto
Llamando a JSON_UNQUOTE()
sin un argumento da como resultado un error:
SELECT JSON_UNQUOTE();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Es lo mismo cuando proporciona demasiados argumentos:
SELECT JSON_UNQUOTE('a', 'b');
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'