2011-12-10 4 views
0

Voici un exemple de ce que ma table se compose de:Trouver une chaîne/tableau dans une partie d'une chaîne

groupCanSee 
1 
1,2 
-1,2 

J'ai alors obtenu un tableau (détaillant les groupes que ce membre est une partie), que j'ai converti en une chaîne - Mais pourrait être laissé comme tableau.

Je ai essayé d'utiliser FIND_IN_SET(groupsCanSee, $usersGroups) - Mais le problème que je suis bien sûr, c'est que la fonction FIND_IN_SET, ne peut repérer qu'une partie d'une chaîne (par exemple 1 à 1,2), mais si je veux qu'elle soit visible aux groupes 1 et 4 (FIND_IN_SET('1,4','1,2')) cela ne fonctionnera pas.

Est-ce que quelqu'un a des suggestions sur une solution de contournement?

+0

Quelle est votre résultat souhaité pour les données par exemple? –

+0

Le meilleur conseil est de normaliser votre table. ;) –

+0

Le résultat souhaité pour ces données est de former un menu, certaines zones étant restreintes en fonction du groupe dont l'utilisateur est membre. – Daniel

Répondre

1

logique booléenne simple:

FIND_IN_SET(groupsCanSee, `1`) OR FIND_IN_SET(groupsCanSee, `4`) 
+0

Comment puis-je faire cela avec une chaîne si - j'ai $ userGroups = "1,2,3" etc - Pourtant, cela nécessiterait que je le fais pour tout le monde? – Daniel

+0

@Daniel: Oui. Divisez-les à la source. C'est pourquoi vous ne devriez pas utiliser des chaînes pour ce type de données assemblées. NORMALISER. –

+0

Merci pour votre aide! Je vais apprendre à normaliser – Daniel

Questions connexes