Where user_id is not met meerdere waardes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dominique Geheim

Dominique Geheim

26/09/2016 11:00:14
Quote Anchor link
Beste mede SQL en PHP-ers :)

Ik heb een eenvoudige tables. Een autonummeriek ID veld, een user_id veld en een role_id veld.
Nu wil ik een paar users_id's buiten de check op het role_id houden.

Iets als: UPDATE usersroles SET role_id = 2 WHERE user_id IS NOT 1,4,5,7 werkt niet en dit werkt ook niet:
UPDATE usersroles SET role_id = 2 WHERE user_id IS NOT 1 OR NOT 4.

Deze check wil ik ééns in de zoveel tijd draaien, het is eigenlijk extra bovenop alle andere controles.

Heeft iemand een idee hoe ik deze query werkend krijg?
 
PHP hulp

PHP hulp

16/11/2024 00:34:19
 
Ivo P

Ivo P

26/09/2016 11:02:41
Quote Anchor link
WHERE user_id NOT IN (1, 4, 5)

of

WHERE user_id != 1 AND user_id != 4 AND user_id != 5
 
Dominique Geheim

Dominique Geheim

26/09/2016 11:13:03
Quote Anchor link
Die NOT IN had ik inderdaad geprobeerd maar stellig heb ik daar iets mee fout gedaan. Het werkt nu. Dankje Ivo :)
 
Ward van der Put
Moderator

Ward van der Put

26/09/2016 11:13:40
Quote Anchor link
Dominique Geheim op 26/09/2016 11:00:14:
Nu wil ik een paar users_id's buiten de check op het role_id houden.

De user_id zou eigenlijk altijd en overal dezelfde betekenis moeten hebben. Als je een handvol user_id's een "speciale betekenis" gaat geven, is dat een teken dat je datamodel niet deugt. "Alle users zijn gewone users behalve die met user_id 1, 4, 5 of 7" is een ongelukkige uitzondering.

Je kunt die speciale betekenis misschien beter opvangen door bijvoorbeeld een extra role_id toe te voegen of een extra kolom met een binaire flag die je op true zet voor de uitzonderingen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.