Estrarre JSON da MariaDB e MySQL
In MariaDB, e MySQL, abbiamo diverse funzioni per estrarre/fare il parsing JSON.
In questo articolo ne vediamo alcune (sicuramente ci sono altre funzioni/modi).
Cominciamo con JSON_EXTRACT:
SELECT JSON_EXTRACT(
'{
"titolo": "IT",
"autore": "Stephen King",
"prezzp": 25
}',
'$.titolo'
);
Oppure:
SELECT JSON_EXTRACT(
'{
"titolo": "IT",
"autore": "Stephen King",
"prezzp": 25
}',
'$.titolo', '$.autore'
);
Però i valori ci vengono rappresentati da virgolette.
Possiamo usare JSON_UNQUOTE per evitare questa cosa:
SELECT JSON_UNQUOTE(
JSON_EXTRACT(
'{
"titolo": "IT",
"autore": "Stephen King",
"prezzp": 25
}',
'$.titolo'
)
);
Un'altra funzione utile è JSON_VALUE:
SELECT JSON_VALUE(
'{
"titolo": "IT",
"autore": "Stephen King",
"prezzp": 25
}',
'$.titolo'
);
Poi abbiamo anche la possibilità di usare anche gli operati -> e ->>.
Supponiamo di avere una tabella libri con due campi:
- libro_id
- libro_json
Possiamo estrapolare in campi dei JSON così:
SELECT
libro_id,
libro_json -> '$.titolo',
libro_json -> '$.autore'
FROM libri;
Per levare le virgolette:
SELECT
libro_id,
libro_json ->> '$.titolo',
libro_json ->> '$.autore'
FROM libri;
Enjoy!
database mariadb mysql json json_value json_extract json_unquote
Commentami!