Nous essayons de sélectionner toutes les lignes d'une table où un champ spécifique a une valeur contenue dans un tableau de valeurs - par exemple

SELECT * FROM table WHERE field IN(array)

L'utilisation spécifique est de voir si le champ contient un groupe d'utilisateurs spécifique d'un tableau de groupes d'utilisateurs fournis auquel l'utilisateur appartient actuellement - par exemple

SELECT * FROM Gadgets WHERE Visibility IN("Everyone", "Registered User", "Site Owner", "Accountant")

Venant en blanc sur toutes nos recherches, j'aimerais donc avoir de l'aide sur celle-ci.

3
Terrence Bull 3 avril 2017 à 03:21

2 réponses

Meilleure réponse

Quelque chose comme ça peut fonctionner.

SELECT * FROM Gadgets g WHERE exists (
select 1 from usergroup u where u.visibility = g.visibility
)
0
maSTAShuFu 3 avril 2017 à 00:53

En creusant un peu plus, nous avons trouvé ARRAY_CONTAINS, ce qui serait probablement une meilleure réponse à la question originale - même si nous avons fini par utiliser EXISTS et référencer une autre table.

Nous avons pensé qu'il était préférable de le mettre ici pour quiconque recherche sur ce sujet.

3
Terrence Bull 3 avril 2017 à 21:38