MySQL JSON_UNQUOTE() Function
La función `JSON_UNQUOTE()` de MySQL se utiliza para eliminar las comillas exteriores de un literal de cadena JSON. Es especialmente útil para extraer y mostrar valores de cadena JSON sin las comillas que los rodean.
Utilización
La función `JSON_UNQUOTE()` se utiliza cuando necesitas recuperar un valor de cadena JSON en su forma simple, sin las comillas dobles que lo encierran. Suele aplicarse al procesar datos JSON almacenados en tablas MySQL.
JSON_UNQUOTE(json_val)
En esta sintaxis, `json_val` representa el valor de la cadena JSON de la que quieres eliminar las comillas.
Ejemplos
1. Descifrado básico de una cadena JSON
SELECT JSON_UNQUOTE('"Hello World"') AS result;
Este ejemplo elimina las comillas de la cadena JSON literal `"Hola Mundo"`, dando como resultado la cadena simple `Hola Mundo`.
2. Descotizar un valor JSON de una tabla
SELECT JSON_UNQUOTE(json_column->'$.name') AS name
FROM my_table;
En este ejemplo, se utiliza la función `JSON_UNQUOTE()` para extraer y descomentar el campo `name` de un objeto JSON almacenado en la columna `json_column` de `my_table`. El operador de flecha (`->`) se utiliza para acceder a una expresión de ruta JSON.
3. Manejo de datos JSON anidados
SELECT JSON_UNQUOTE(json_column->'$.address.city') AS city
FROM my_table
WHERE JSON_UNQUOTE(json_column->'$.address.city') = 'New York';
Aquí se aplica `JSON_UNQUOTE()` a un campo JSON anidado para comparar y recuperar nombres de ciudades sin entrecomillar, filtrando específicamente por `Nueva York`.
Consejos y buenas prácticas
- Asegúrate de que la entrada JSON es válida. Pasa cadenas JSON válidas a `JSON_UNQUOTE()` para evitar resultados inesperados o errores.
- Valores JSON que no son cadenas. Cuando la entrada no es una cadena JSON válida (por ejemplo, un número o un booleano), `JSON_UNQUOTE()` devuelve el valor tal cual sin lanzar un error.
- Tratamiento de errores. Si la entrada está malformada o no es una cadena JSON válida, `JSON_UNQUOTE()` puede devolver `NULL` o provocar un error, dependiendo de la versión de MySQL.
- Utilízalo con funciones JSON. Combina `JSON_UNQUOTE()` con otras funciones JSON como `JSON_EXTRACT()` para un manejo más complejo de JSON.
- Comprueba si hay valores NULL. Prepárate para manejar resultados `NULL` si la ruta JSON de entrada no existe o la entrada es `NULL`.
- Optimiza la legibilidad. Utiliza alias para aclarar el propósito de los valores no entrecomillados en tus consultas.
- Compatibilidad. Ten en cuenta las posibles diferencias de comportamiento entre las versiones de MySQL y consulta la documentación para conocer los detalles específicos de cada versión.
Funciones relacionadas
- JSON_EXTRACT(): Utiliza esta función para extraer datos de un documento JSON.
- JSON_SET(): Modifica un documento JSON estableciendo nuevos valores.