J'ai cette requête en cours d'exécution :
select * from housedata where JSON_EXTRACT(properties->"$.Type", '$[0]') in ('House', 'Flat');
Cependant, dans certaines lignes, il y a plusieurs éléments dans le tableau Type json et je ne souhaite pas utiliser uniquement le premier élément comme dans l'exemple ci-dessus.
Supposons qu'il s'agisse de ["Maison", "Plat"] Je souhaite faire correspondre la requête, mais aussi lorsqu'il s'agit de ["Maison", "Tente"] comme l'un des éléments de la liste "Dans". < /p>
Cela peut-il être implémenté dans une requête ? J'ai essayé de le trouver, mais j'ai cherché des exemples de recherche de quelque chose dans le tableau JSON lui-même, mais ce n'est pas ce que je recherche. p>
Oui, cela fonctionne (testé dans MySQL 8.0.32) :
Si vous souhaitez tester une valeur du tableau JSON qui correspond à l'une des listes de valeurs, utilisez JSON_OVERLAPS() :
Bien sûr, ce serait beaucoup plus simple si, au lieu d'utiliser JSON pour les attributs à valeurs multiples, vous utilisiez une table dépendante et stockiez une valeur par ligne.