Maison  >  Article  >  base de données  >  Comment interroger des tableaux JSON dans MySQL : JSON_TABLE() peut-il être utilisé pour récupérer des valeurs spécifiques d'un tableau JSON ?

Comment interroger des tableaux JSON dans MySQL : JSON_TABLE() peut-il être utilisé pour récupérer des valeurs spécifiques d'un tableau JSON ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 00:16:03181parcourir

How to Query JSON Arrays in MySQL: Can JSON_TABLE() be used to retrieve specific values from a JSON array?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn