Fonction MySQL JSON_EXTRACT()
La fonction `JSON_EXTRACT()` de MySQL est utilisée pour extraire des données de documents JSON. Il vous permet de récupérer des valeurs spécifiques à partir de données encodées en JSON et stockées dans votre base de données.
Utilisation
`JSON_EXTRACT()` est couramment utilisé lorsque vous avez besoin d'accéder ou de manipuler des données spécifiques dans un objet ou un tableau JSON. Il spécifie un chemin d'accès aux données souhaitées, qui peuvent être une valeur unique ou un ensemble de valeurs.
JSON_EXTRACT(json_doc, path)
Dans cette syntaxe, `json_doc` représente les données JSON, et `path` spécifie l'emplacement de la valeur souhaitée dans le document JSON. Les chemins peuvent utiliser la notation par points pour les éléments imbriqués et la notation par crochets pour les tableaux. Le symbole `$` indique la racine du document JSON.
Note : La fonction `JSON_EXTRACT()` est disponible à partir de MySQL 5.7.
Exemples
1. Extraction de base
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name');
Cet exemple extrait la valeur "John" de la chaîne JSON, en accédant à la clé `name`.
2. Extraction JSON imbriquée
SELECT JSON_EXTRACT('{"user": {"name": "Jane", "age": 25}}', '$.user.age');
Ici, la fonction récupère la valeur de l'âge `25` à partir d'un objet JSON imbriqué sous la clé `user`.
3. Extraction à partir d'un tableau JSON
SELECT JSON_EXTRACT('[10, 20, 30, {"key": "value"}]', '$[3].key');
La fonction extrait la valeur `"value"` d'un élément de tableau JSON à l'index 3, qui est un objet JSON avec une `clé`.
Conseils et bonnes pratiques
- Utilisez du JSON valide. Assurez-vous que le document JSON est correctement formaté et valide pour éviter les erreurs.
- Indices de levier. Envisagez d'indexer les colonnes JSON pour améliorer les performances des requêtes.
- Prise en compte de la syntaxe du chemin. Familiarisez-vous avec la syntaxe des chemins JSON, en utilisant `$` comme racine et la notation par points pour les éléments imbriqués. Il est également possible d'accéder aux tableaux en utilisant la notation par crochets.
- Gérer les nullités. La fonction renvoie `NULL` si le chemin spécifié n'existe pas dans le document JSON.
- Optimisez le stockage. Utilisez des colonnes JSON au lieu de grands champs de texte pour une meilleure efficacité et une optimisation des requêtes.
- Combinez les fonctions. Pensez à combiner `JSON_EXTRACT()` avec d'autres fonctions SQL pour manipuler et récupérer des structures de données complexes.