Maison > base de données > tutoriel mysql > le corps du texte

Comment trouver une valeur spécifique dans un tableau JSON dans MySQL ?

Susan Sarandon
Libérer: 2024-10-30 08:24:03
original
248 Les gens l'ont consulté

How to Find a Specific Value within a JSON Array in MySQL?

MySQL : Rechercher une valeur de clé spécifique dans un tableau

Dans MySQL, vous pouvez rencontrer des scénarios dans lesquels vous souhaitez récupérer une valeur spécifique à partir de un tableau d'objets JSON. À l'aide de la fonction JSON_SEARCH, vous pouvez récupérer le chemin d'accès au nœud souhaité. Cependant, combiner cela avec la sélection d'un élément de tableau spécifique peut être un défi.

Solution : Fonction JSON_TABLE

MySQL 8.0 fournit la fonction JSON_TABLE, qui transforme un JSON document dans une table dérivée virtuelle, semblable aux lignes et colonnes conventionnelles. Cela vous permet d'effectuer des opérations de sélection et de projection sur les données JSON.

Considérez l'exemple de tableau JSON suivant :

<code class="json">[
    {"Race": "Orc", "strength": 14},
    {"Race": "Knight", "strength": 7}
]</code>
Copier après la connexion

Pour trouver la force du chevalier, vous pouvez utiliser la requête suivante :

<code class="sql">SELECT j.strength, j.race
FROM mytable, JSON_TABLE(mycol, '$[*]'
  COLUMNS (
    race VARCHAR(10) PATH '$.Race',
    strength INT PATH '$.strength'
  )
) AS j
WHERE j.race = 'Knight';</code>
Copier après la connexion

Limitations et considérations

  • La fonction JSON_TABLE nécessite une spécification explicite des attributs, ce qui peut ne pas être pratique si les attributs sont inconnus.
  • Définir une vue à l'aide de JSON_TABLE peut atténuer le caractère répétitif de la création de cette table dérivée.
  • Envisagez la normalisation des données JSON complexes afin de simplifier et d'optimiser les requêtes.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal