Publicidad

Extraer valores de un campo JSON en MySql


Por Alex el 30/03/2022 , Comentar el artículo

Comparte este artículo:      




Cuando almacenamos datos del tipo JSON en MySql, podemos muy facilmente extraer los valores de un determinado campo con una query.


El proceso es mu sencillo, supongamos que tenemos una tabla que se llama errores y dentro un campo llamado details que es del tipo JSON y tenemos almacenados jsons con un formato como este:

{
"id": "aaaac175-c971-5e32-3333-d35797aasssdaa",
"operation_id": "QQQQbc74-3333-475b-3333-bd8cfe0b6c22",
"created_at": "2022-03-26T01:27:49+01:00",
"context": {
"status": "ERROR",
"error_type": "SFTP_TRANSFER_FAILED",
"error": "Inappropriate ioctl for device",
"occurred_on": "2022-03-26T01:27:51+01:00",
}
}


Y queremos obtener el valor del campo operation_id en una query. La consulta nos quedaría así:

SELECT *, JSON_EXTRACT(details, "$.operation_id") AS operation_id FROM errores
Si quisiéramos el tipo de error la consultase seria:

SELECT *, JSON_EXTRACT(details, "$.context.error_type") AS error_type FROM errores
Y así sucesivamente con el resto de niveles que pudiera tener el json.

Y esto es todo, y feliz programming
Saludos
Alex.



Si te ha gustado el artículo compartelo en:      



También puede interesarte:

Crear un servidor MySql en Docker con volumen externo

Crear un servidor MySql en Docker con volumen externo

Por Alex, el 16/05/2022

Paginación de registros desde MySql

Paginación de registros desde MySql

Por Alex, el 09/05/2022

Migrar una base de datos de MySql a postgreSQL

Migrar una base de datos de MySql a postgreSQL

Por Alex, el 23/04/2022

Comparar estructura de dos bases de datos

Comparar estructura de dos bases de datos

Por Alex, el 28/03/2022

Espacio ocupado en disco por las bases de datos MySql

Espacio ocupado en disco por las bases de datos MySql

Por Alex, el 17/02/2022

Truncate y reset identity en mysql

Truncate y reset identity en mysql

Por Alex, el 05/01/2022


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.