SQL JSON
diccionario
Extraer información de JSON almacenado en campo SQL:
SELECT id,JSON_EXTRACT(valor,'$.periode') AS periode FROM treballadors_registrejornada WHERE periode = "01-2020"
SELECT id FROM treballadors_registrejornada WHERE valor->>'$.periode' = '01-2020';
lista
["01-2020", "02-2020", "03-2020"]
-- Extrae el primer elemento de la lista SELECT id, JSON_EXTRACT(valor, '$[0]') AS primer_periodo FROM treballadors_registrejornada;
-- Devuelve solo las filas donde "01-2020" esté dentro de la lista SELECT id FROM treballadors_registrejornada WHERE JSON_CONTAINS(valor, '"01-2020"');
-- Eliminar un elemento por su posición SELECT id, JSON_LENGTH(valor) AS total_periodos FROM treballadors_registrejornada;
-- Eliminar un elemento por su posición UPDATE treballadors_registrejornada SET valor = JSON_ARRAY_APPEND(valor, '$', '04-2020') WHERE id = 1;
-- nsertar en una posición específica (ej. en la posición 1) SET valor = JSON_ARRAY_INSERT(valor, '$[1]', '01-2021')
-- Eliminar un elemento por su posición SET valor = JSON_REMOVE(valor, '$[0]') -- Borra el primer elemento
-- De Lista JSON a Filas SQL SELECT t.id, j.periode FROM treballadors_registrejornada t CROSS JOIN JSON_TABLE( t.valor, '$[*]' COLUMNS ( periode VARCHAR(20) PATH '$' ) ) AS j WHERE j.periode = "01-2020";
