Extraer valores con JSON_EXTRACT en MySQL

Tiempo de lectura estimado: < 1 minuto

Cuando trabajamos con bases de datos, puede ocurrir que tengamos datos almacenados en una tabla(o varias), en formato JSON.

Es decir:
[{“count”:x,”content”:”feelings”}], [{“count”:y,”content”:”peace”}], …
Y debemos poder trabajar con dicho formato en nuestra base de datos para mostrar la información pertinente.

Si queremos pintar gráficas por ejemplo y queremos sólo el valor (por ejemplo), deberemos usar la función JSON_EXTRACT.

Es decir, queremos obtener todas las edades de nuestro campo: edad.

[{“count”:20,”age”:”19″}], [{“count”:142,”age”:”27″}],…

Sabemos que 20 usuarios tienen 19 años y 142, 27. Pero nosotros queremos el valor. Únicamente el valor.

Así que, vamos a preparar la sentencia para obtener dicho dato:

SELECT demo_name
AS 'Demo Name',
JSON_EXTRACT(ageT, '$[*].age')
AS Edad
FROM table_demo
WHERE demo_name= demo_name
ORDER BY JSON_EXTRACT(ageT, '$[*].age') DESC

 

Cogemos el valor (en este caso age), que es lo que necesitamos para poder trabajar.

Y con esto, obtendríamos todos los valores de la tabla “age”. Listos para poder representarlos.

Podríamos usar tambien el operador -> , que es idéntico a JSON_EXTRACT:

edad->'$.ageT.age'

 

Saludos

 

 

Deja un comentario

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar