sql >> Base de Datos >  >> RDS >> MariaDB

Explicación de MariaDB JSON_UNQUOTE()

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'