Interrogation de tableaux JSON dans MySQL : solution avec JSON_TABLE()
Vous pouvez récupérer des valeurs spécifiques d'un tableau JSON à l'aide de fonctions SQL comme JSON_SEARCH, mais cela ne fournit que le chemin vers le nœud souhaité. Pour combiner la recherche de chemin avec la récupération de valeur réelle, vous pouvez utiliser la fonction JSON_TABLE().
JSON_TABLE() convertit un document JSON en table virtuelle, vous permettant d'appliquer des opérations SQL telles que WHERE et SELECT sur ses éléments. . En spécifiant les colonnes et leurs chemins dans le tableau, vous pouvez facilement filtrer et projeter les attributs souhaités. Prenons l'exemple suivant :
SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' ) ) AS j WHERE j.race = 'Knight'
Cette requête renverrait la valeur de force de la race des chevaliers. Cependant, cela nécessite que vous définissiez explicitement les noms d'attributs et leurs chemins, ce qui peut ne pas être réalisable lorsque la structure des données est dynamique ou indéfinie.
Il convient de noter que l'utilisation de JSON_TABLE() implique de convertir le document JSON en un table virtuelle pour chaque requête, ce qui peut avoir un impact sur les performances si les données sont volumineuses. De plus, cette approche vous oblige à spécifier les champs d'attributs que vous souhaitez rechercher, ce qui limite son utilisation pour des structures de données totalement indéfinies.
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!