Toon posts:

[mysql] where ... and ... and... and... simpele vraag...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik wil uit mijn mysql database alle items die niet verborgen zijn en alle items die wel verborgen zijn weergeven (op twee verschillende pagina's)...

Een item heeft drie velden met verborgen (verborgen_1, verborgen_2 en verborgen_3) het nummer staat voor de talen.

ik wil dus een pagina met daarop alle items waarvan niet alle verborgen velden op "yes" staat.

Ik dacht dat dat met de volgende twee querie zou dat volgens mij moeten kunnen kunnen:

code:
1
2
3
4
5
SELECT * 
FROM news 
WHERE verborgen_1 <> 'yes' 
AND verborgen_2 <> 'yes' 
AND verborgen_3 <>'yes'


Op deze manier worden bij de nietverborgen items de items weer gegeven waarvan geen van ale verborgen velden yes zijn terwijl ik wil dat alleen de items waar niet alle verborgen velden yes zijn worden weergegven...

Kan iemand mij vertellen met welke sql query ik de gewenste items uit de datum kan halen en waarom het bij de door mij gegeven query niet goed gaat?

  • simon
  • Registratie: Maart 2002
  • Laatst online: 13-05 17:26
waah, kun je wat beter formuleren? Dit is echt verwarrend, zet eens je voorwaarde fatsoendelijk op een rijtje en kijk naar OR, XOR en AND

|>


  • Rac-On
  • Registratie: November 2003
  • Niet online
misschien or gebruiken ipv and?

doet niet aan icons, usertitels of signatures


  • Morphine
  • Registratie: Februari 2002
  • Laatst online: 09-05 10:15
haakjes gebruiken WHERE (.. and .. and..)

  • Daventry
  • Registratie: Oktober 2004
  • Laatst online: 21-04-2025
code:
1
2
3
SELECT *
FROM news
WHERE NOT (verborgen_1 like 'yes' AND verborgen_2 LIKE 'yes' AND verborgen_3 LIKE 'yes'


(gokje ... jaren geleden dat ik nog SQL heb gebruikt)

[ Voor 29% gewijzigd door Daventry op 16-02-2005 15:36 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Maak een waarheidstabel... en bedenk dat je in jouw query test dat een record alledrie op "niet yes" moet hebben.

De NOT (... and ... and ...) is hetzelfde als or not ... or not ..., oftewel je kan beide gebruiken:
NOT (... = yes AND ...)
of:
... != yes OR ... != yes OR ...

  • schoene
  • Registratie: Maart 2003
  • Laatst online: 14-05 17:23
Verwijderd schreef op woensdag 16 februari 2005 @ 15:30:
ik wil dus een pagina met daarop alle items waarvan niet alle verborgen velden op "yes" staat.
where verborgen_1 = 'no' or verborgen_2 = 'no' ord verborgen_3 = 'no' :?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-05 22:46

Janoz

Moderator Devschuur®

!litemod

Sowieso is een itteratie in je kolomnamen (de 1,2 en 3) al een teken dat er iets mis is met je database model. Je gaat namelijk nogal in de problemen komen waneer er een taal bij komt. De kort door de bocht oplossing is trouwens OR gebruiken ipv AND.

@Daventry wtf doen die likes daar?? Een = voldoet daar een heel stuk beter.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
mmm ik zal het proberen... duidelijker uit te leggen...

Ik heb een tabel met news items.

per item heb ik onder ander

id
verborgen_1
verborgen_2
verborgen_3

Ik wil een query waarbij de items worden gegeven waarbij zowel verborgen_1 als verborgen_2 als verborgen_3 Geen Yes zijn...

  • Rac-On
  • Registratie: November 2003
  • Niet online
je spreekt jezelf iedere keer tegen. Wil je nu dat alle waarden niet yes zijn, of dat minsten 1 van de waardes niet yes is?

doet niet aan icons, usertitels of signatures


Verwijderd

Topicstarter
je hebt gelijk Janos (dat het database ontwerp niet 100% is)

Maar ikzou voorlopig niet weten hoe ik het anders op zou moeten losesn...

Mijn probleem is inderdaad opgelost door het gebruik van OR

Bedankt iedereen!
Pagina: 1