Ilja: SQL-SELECT

Beitrag lesen

yo,

Wie musss ich das formulieren?

$sql="SELECT * FROM $tabelle WHERE (aktuell LIKE 'x'  AND (  OR  artikel_Nr LIKE '%$suchstr%'
            OR  beschreibung LIKE '%$suchstr%'
            OR  bemerkung LIKE '%$suchstr%')
            AND detail NOT LIKE 'Detail'))";

das erste, was mir auffällt ist, dass die äußere klammerung keinen wirklichen nutzen hat, kann also weggelassen werden. das zweite wundert mich, dass es nicht zu einen syntax error kommt "AND (  OR". fehlt da ein ausdruck oder blicke ich nicht durch ? das dritte ist, dass du bei der bedingung nach detail und aktuell kein LIKE verwenden brauchst. ein detail <> 'Detail' und aktuell = 'x' würde es auch tun. das vierte ist, dass du dich bei den spalten beschreibung und bemerkung vielleicht mit full text index befassen willst, falls die abfrage mal zulange dauern sollte.

vielleicht kannst du ja nochmal deine query angeben, wegen meinen angesprochenen syntax-fehler. ich vermute aber mal, die ANDs's und OR's sind nicht richtig miteinander verknüpft.

Ilja