Hans: MYSQL-Abfrage erbringt falsche (zu viele) Ergebnisse

Hallo,

Ich programmiere gerade an meinem Board weiter un habe folgende Abfrage:

SELECT * FROM board_threads WHERE board LIKE 1 OR movedfrom LIKE 1 AND status NOT LIKE 'sticky' ORDER BY akdatum DESC LIMIT 0,4

Wie ihr seht, habe ich bei "sticky" NOT LIKE angegeben, jedoch bekomme ich trotzdem ebenfalls die Threads, bei denen das Feld "status" auf "sticky" steht...

Weiß jemand Rat?

Ich danke euch,
Hans

  1. hi hans,

    SELECT * FROM board_threads WHERE board LIKE 1 OR movedfrom LIKE 1 AND status NOT LIKE 'sticky' ORDER BY akdatum DESC LIMIT 0,4

    Wie ihr seht, habe ich bei "sticky" NOT LIKE angegeben, jedoch bekomme ich trotzdem ebenfalls die Threads, bei denen das Feld "status" auf "sticky" steht...

    auf den ersten blick würde ich sagen bindet das AND zuerst, das heisst er nimmt alle die board=1 besitzen oder (alle die movedfrom=1 und nicht status like sticky haben). setz mal klammern und die OR abfragen und dann verbinde sie mit der AND bedingung. auch würde ich auf gleichheit bei zahlen prüfen, komtm abver immer drauf an, was genau du suchst:

    WHERE (board=1 OR movedfrom=1) AND status NOT LIKE 'sticky'

    Ilja