Le format JSON avec MySQL
Manipulation de données au format JSON dans une table.
Création d'une table avec un champ de type JSON
CREATE TABLE `log` (
`id` int AUTO_INCREMENT,
`message` longtext,
`context` json,
PRIMARY KEY (`id`)
);
Insertion des données de tests
INSERT INTO log (message, context) VALUES
('Ola les gens', '{"action": "alert", "user": "Jobi"}'),
('Bien ou bien ?', '{"action": "question", "user": "Joba"}'),
('Bravo !', '{"action": "success", "user": "Jobi"}');
Selects
Extraire la valeur d'une clé
SELECT JSON_EXTRACT(context, '$.user') AS username, message FROM log;
Supprimer les doubles quotes
SELECT JSON_UNQUOTE(JSON_EXTRACT(context, '$.user')) AS username, message FROM log;
Syntaxe alternative
SELECT context->'$.user' AS username, message FROM log;
-- Sans les doubles quotes
SELECT context->>'$.user' AS username, message FROM log;