Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-02 11:38:30
original
351 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

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