Maison >base de données >tutoriel mysql >Comment rechercher efficacement des éléments dans des tableaux JSON dans MySQL ?

Comment rechercher efficacement des éléments dans des tableaux JSON dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 11:59:09356parcourir

How to Efficiently Search for Elements within JSON Arrays in MySQL?

Recherche de tableaux JSON dans MySQL

Supposons que vous ayez une table MySQL avec une colonne JSON nommée "data" contenant un tableau. Vous souhaitez récupérer toutes les lignes dont l'un des éléments du tableau est supérieur à 2.

La requête

SELECT * from my_table
WHERE JSON_EXTRACT(data, '$[*]') > 2;

renvoie un résultat incorrect car elle est toujours évaluée à vrai, quelles que soient les valeurs du tableau .

Pour rechercher un entier dans un tableau :

JSON_CONTAINS('[1,2,3,4,5]','7','$')  # Returns: 0
JSON_CONTAINS('[1,2,3,4,5]','1','$')  # Returns: 1

Pour rechercher une chaîne dans un array :

JSON_CONTAINS('["a","2","c","4","x"]','"x"','$')  # Returns: 1
JSON_CONTAINS('["1","2","3","4","5"]','"7"','$')  # Returns: 0

Pour votre scénario, utilisez la requête :

SELECT * from my_table
WHERE JSON_CONTAINS(data, '2', '$');

Cette requête sélectionne toutes les lignes où la colonne "data" contient un tableau avec un élément supérieur à 2.

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