Maison  >  Article  >  base de données  >  Comment puis-je trouver un objet JSON spécifique par valeur clé à l'aide de MySQL JSON_TABLE() ?

Comment puis-je trouver un objet JSON spécifique par valeur clé à l'aide de MySQL JSON_TABLE() ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 11:38:30254parcourir

How Can I Find a Specific JSON Object by Key Value Using MySQL JSON_TABLE()?

MySQL JSON : recherche d'objets par valeur clé

Lorsque vous travaillez avec des objets JSON dans MySQL, vous pouvez rencontrer des situations dans lesquelles vous devez rechercher un objet spécifique dans les données JSON à l'aide d'une clé d'un autre objet. Cela peut être une tâche difficile sans les fonctions appropriées. Dans cet article, nous discuterons d'un moyen efficace d'y parvenir en utilisant JSON_TABLE().

La syntaxe de JSON_TABLE() est la suivante :

<code class="sql">JSON_TABLE(expression, path_expression COLUMNS *(expression_list))</code>

Dans ce cas, nous avons un Structure JSON similaire à celle fournie dans la question d'origine, où nous avons un tableau d'objets contenant des paires clé-valeur. Nous voulons récupérer l'objet avec la valeur spécifiée à partir d'une clé tout en recherchant sur une autre clé.

En utilisant JSON_TABLE(), nous pouvons écrire la requête comme suit :

<code class="sql">SELECT field_options.*
FROM fields
CROSS JOIN JSON_TABLE(options, '$[*]'
  COLUMNS(
    text TEXT PATH '$.text',
    value TEXT PATH '$.value'
  )
) field_options
WHERE field_options.value = 1;</code>

Voici comment procéder fonctionne :

  • CROSS JOIN : relie la table des champs aux données JSON extraites à l'aide de JSON_TABLE().
  • JSON_TABLE() : Extrait les objets de la colonne d'options JSON à l'aide de l'expression de chemin $[*], qui représente tous les objets du tableau.
  • COLUMNS() : Spécifie les colonnes à extraire de chaque objet, y compris les valeurs de texte et de valeur.
  • Clause WHERE : filtre la table field_options pour renvoyer uniquement l'objet avec la valeur '1'.

Le résultat sera être une table contenant l'objet correspondant du tableau JSON.

Cependant, il convient de se demander si l'utilisation de JSON est la solution optimale pour ce type de données. Si vos données peuvent être représentées plus efficacement dans une structure de table relationnelle normalisée, il peut être préférable d'éviter d'utiliser JSON. Cela peut simplifier les tâches d'interrogation et de maintenance.

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