Je pense que vous ne pouvez y parvenir que dans Mysql 5.7.
Dans la version 5.7, vous pouvez faire quelque chose comme :
SELECT JSON_EXTRACT(json_field, '$.name');
et il n'extrairea que la clé de nom de l'objet json.
Rechercher tous les éléments avec la balise "JavaScript" :
SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');
Rechercher tous les éléments dont les balises commencent par "Java" :
SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;
utilisez 'one' pour trouver la première correspondance ou 'all' pour trouver toutes les correspondances
Vous pouvez extraire le pseudo Twitter à l'aide d'un chemin JSON :
SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;
Vous pouvez également référencer un chemin JSON dans la clause WHERE pour renvoyer uniquement les utilisateurs avec un compte Twitter :
SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;
Vous pouvez faire plus de choses comme :
-
Création de valeurs JSON
-
Normalisation, fusion et autowrapping des valeurs JSON
-
Rechercher et modifier des valeurs JSON
-
Comparaison et classement des valeurs JSON
-
Agrégation de valeurs JSON
pour plus d'informations, veuillez vous référer à :https://dev.mysql. com/doc/refman/5.7/en/json.html