Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

MySQL JSON_EXTRACT() Function

La función `JSON_EXTRACT()` de MySQL se utiliza para extraer datos de documentos JSON. Te permite recuperar valores específicos de datos codificados en JSON almacenados en tu base de datos.

Utilización

`JSON_EXTRACT()` se utiliza habitualmente cuando necesitas acceder o manipular datos concretos dentro de un objeto o matriz JSON. Especifica una ruta a los datos deseados, que pueden ser un único valor o un conjunto de valores.

JSON_EXTRACT(json_doc, path)

En esta sintaxis, `json_doc` representa los datos JSON, y `ruta` especifica la ubicación del valor deseado dentro del documento JSON. Las rutas pueden utilizar tanto la notación de puntos para los elementos anidados como la notación de corchetes para las matrices. El símbolo `$` significa la raíz del documento JSON.

Nota: La función `JSON_EXTRACT()` está disponible a partir de MySQL 5.7.

Ejemplos

1. Extracción básica

SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name');

Este ejemplo extrae el valor "Juan" de la cadena JSON, accediendo a la clave `nombre`.

2. Extracción JSON anidada

SELECT JSON_EXTRACT('{"user": {"name": "Jane", "age": 25}}', '$.user.age');

Aquí, la función recupera el valor de edad `25` de un objeto JSON anidado bajo la clave `user`.

3. Extraer de una matriz JSON

SELECT JSON_EXTRACT('[10, 20, 30, {"key": "value"}]', '$[3].key');

La función extrae el valor `"valor"` de un elemento de la matriz JSON en el índice 3, que es un objeto JSON con una `clave`.

Consejos y buenas prácticas

  • Utiliza JSON válido. Asegúrate de que el documento JSON está correctamente formateado y es válido para evitar errores.
  • Índices de apalancamiento. Considera la posibilidad de indexar las columnas JSON para mejorar el rendimiento de las consultas.
  • Conocimiento de la sintaxis de la ruta. Familiarízate con la sintaxis de rutas JSON, utilizando `$` como raíz y la notación de puntos para los elementos anidados. También se puede acceder a las matrices utilizando la notación de corchetes.
  • Maneja los nulos. La función devolverá `NULL` si la ruta especificada no existe en el documento JSON.
  • Optimiza el almacenamiento. Use JSON columns instead of large text fields for better efficiency and query optimization.
  • Combina funciones. Considera la posibilidad de combinar `JSON_EXTRACT()` con otras funciones SQL para manipular y recuperar estructuras de datos complejas.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis