Hei!
SQL OR ongelma
Jos teenk kyselyn esim näin.
$k = "SELECT ehto 1 AND ehto 2 AND ehto 3 OR ehto 4
niin OR ehdon tullessa voimaan vissiin ehto 1 ja ehto 2 sekä ehto 3 kumotaan?
Jos taas laittaisin tuossa kohdan ehto 3 ja ehto 4 sulkujen sisään, niin myös ehdot 1 ja 2 huomioitaisiin ja or vaikuttaisi vain ehtoon 3 ja 4.
Pitääkö tämä paikkansa?
manninen kirjoitti:
niin OR ehdon tullessa voimaan vissiin ehto 1 ja ehto 2 sekä ehto 3 kumotaan?
Ei niitä mitenkään kumota vaan ehtojen 1, 2 ja 3 tai ehdon 4 pitää täyttyä. Voit ajatella sen myös "MISSÄ ehto 1 JA ehto 2 JA ehto 3 TAI ehto 4" on tosi.
manninen kirjoitti:
Jos taas laittaisin tuossa kohdan ehto 3 ja ehto 4 sulkujen sisään, niin myös ehdot 1 ja 2 huomioitaisiin ja or vaikuttaisi vain ehtoon 3 ja 4.
Pitääkö tämä paikkansa?
Ei vaan ehtojen 1 ja 2 täytyy olla tosi jonka lisäksi 3 tai 4 on tosi.
Othnos selitti asian ehkä hieman epäselvästi. Kyse on yksinkertaisesti laskujärjestyksestä.
a AND b AND c OR d = (a AND b AND c) OR d
Kannattaa ottaa tavaksi käyttää sulkuja, niin tulee tehtyä vähemmän virheitä laskujärjestyksen kanssa ja koodin tarkoitusperää on helpompi lukea.
Aihe on jo aika vanha, joten et voi enää vastata siihen.