Maison >base de données >tutoriel mysql >Comment récupérer efficacement des données JSON spécifiques à 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"$]'
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\"]" } } }
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"$]$'
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!