Julian von Mendel: sql-verständnis

Beitrag lesen

Hi,

wegen dem OR? Schreib dir doch mal Klammern rein. OR hat eine höhere
Priorität als AND, d. h. wenn z. B. eigenwerbung = '1' zutrifft ist
die bedingung ebenfalls erfüllt. Wenn du das verhindern möchtest,
setze Klammern.

so krieg ich dann nen sql-error:

SELECT id FROM banner WHERE size ='right' AND bereich LIKE '%a%' ( OR eigenwerbung = '1' OR sponsor = '1' ) AND '2005-08-11' BETWEEN startdateAND enddate

nachdem ich nicht weiß, was du machen möchtest, kann ich dir die Klammern nicht einfach richtig hinsetzen. Du klammerst jedoch nur die ORs ein, was vollkommen sinnlos ist. Du musst die ANDs einklammern. So z. B.:
SELECT id FROM banner WHERE (size ='right' AND bereich LIKE '%a%') OR eigenwerbung = '1' OR (sponsor = '1' AND '2005-08-11' BETWEEN startdate AND enddate)

Schöne Grüße
Julian

--
"Real programmers can write assembly code in any language." - Larry Wall