Interrogation d'un tableau JSON imbriqué par clé
Dans MySQL, vous pouvez récupérer des valeurs spécifiques d'un tableau JSON imbriqué en utilisant une combinaison de JSON_TABLE () et une clause WHERE.
Considérez le tableau JSON suivant :
<code class="json">[ {"Race": "Orc", "strength": 14}, {"Race": "Knight", "strength": 7} ]</code>
Pour récupérer la force du Chevalier, vous pouvez utiliser la requête suivante :
<code class="sql">SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' )) AS j WHERE j.race = 'Knight'</code>
Cette requête utilise la fonction JSON_TABLE() pour créer une table virtuelle à partir du tableau JSON, avec des colonnes pour chaque attribut. La clause WHERE est ensuite utilisée pour filtrer les résultats en fonction de l'attribut « Race ».
Avantages et limitations
L'utilisation de JSON_TABLE() offre plusieurs avantages :
Cependant, il présente également certaines limites :
Approche alternative
Si la structure des données est inconnue ou change fréquemment, une approche alternative consiste à utiliser la fonction JSON_SEARCH() pour trouver le chemin vers la valeur souhaitée, puis utilisez l'opérateur de chemin pour extraire la valeur. Cependant, cette méthode ne permet pas la sélection ou la projection aussi facilement que JSON_TABLE().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!