Maison >base de données >tutoriel mysql >Comment rechercher efficacement des éléments dans des tableaux JSON dans 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!