Maison > base de données > tutoriel mysql > Comment récupérer efficacement des données JSON spécifiques à partir de MySQL ?

Comment récupérer efficacement des données JSON spécifiques à partir de MySQL ?

Linda Hamilton
Libérer: 2024-12-24 00:52:15
original
550 Les gens l'ont consulté

How to Efficiently Retrieve Specific JSON Data from MySQL?

Récupération de données JSON à partir de MySQL

MySQL fournit un moyen pratique de rechercher et d'extraire des informations spécifiques à partir des données JSON stockées dans sa base de données. Voici comment effectuer une telle recherche :

MySQL version 5.7 et supérieure

Si vous utilisez MySQL version 5.7 ou ultérieure, vous pouvez utiliser la fonction JSON_EXTRACT. Cette fonction vous permet d'extraire une valeur spécifique d'une chaîne JSON. Pour rechercher une valeur particulière dans le champ attribs_json, vous pouvez utiliser une requête comme celle-ci :

SELECT JSON_EXTRACT(attribs_json, '$.feature."1".value') AS feature_value
FROM products
WHERE JSON_EXTRACT(attribs_json, '$.feature."1".value') REGEXP '^[^""3"$]'
Copier après la connexion

Cette requête sélectionnera la valeur de la clé "value" dans la clé "1" de la "fonctionnalité " dans le champ attribs_json pour tous les produits qui n'ont pas "3" comme valeur.

MySQL antérieur Versions

Pour les versions antérieures de MySQL, vous pouvez utiliser des expressions régulières avec l'opérateur REGEXP pour rechercher un modèle dans la chaîne JSON. Cependant, cette approche est plus complexe et nécessite une analyse de chaînes plus intensive.

Exemple de requête

Considérez la structure JSON suivante :

{
  "feature": {
    "1": { "value": "[\"2\",\"3\"]" },
    "2": { "value": "[\"1\"]" },
    "3": { "value": "[\"1\"]" }
  }
}
Copier après la connexion

Pour recherchez la clé "1" avec une valeur qui n'est pas "3", vous pouvez utiliser ce qui suit requête :

SELECT id, attribs_json
FROM products
WHERE attribs_json REGEXP '"1":{.*"value":"[^"3"$]$'
Copier après la connexion

Remarque importante

Lorsque vous utilisez des expressions régulières, n'oubliez pas d'échapper les caractères spéciaux dans votre modèle de recherche pour éviter les correspondances involontaires. De plus, la syntaxe de JSON_EXTRACT et REGEXP peut varier légèrement en fonction de la version spécifique de MySQL que vous utilisez.

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