ChrisB: IF in einem SELECT-Statement

Beitrag lesen

Hi,

Irgend wie will das bei mir nicht so richtig funktionieren. Das Statement besagt doch --

AND IFNULL(optionales_feld, '') = 'wert'

Wenn in diesem Feld nichts steht, dann dieses Feld nicht mit einbeziehen, oder?

IFNULL gibt den Wert des ersten Ausdrucks zurück, wenn dieser nicht gleich NULL ist, sonst den zweiten.
Wenn also der Inhalt deines optionales_feld nicht NULL ist, wird dieser zurückgeliefert und mit 'wert' verglichen;
andernfalls wird '' mit 'wert' verglichen.

Das ist vermutlich nicht das, was du willst - aber *was* du eigentlich willst, ist mir noch nicht klar geworden.

Ich baue mir aus einträgen in der DB eine Navigation zusammen, ein Versuch mit obigem Beispiel funktioniert nur, wenn in optionales_feld was steht, ansonsten gibt es NULL.

Und was *soll* passieren, wenn in optionales_feld "nichts" drin steht?

Resultat: Wenn es eine parent_id gibt, funktioniert das Statement, wenn es keine parent_id gibt, wird das Statement nicht ausgeführt.

Dann definiere doch bitte mal, was in den beiden Fällen mit dem Datensatz passieren soll - wann soll er selektiert werden, und wann nicht?

MfG ChrisB

--
Light travels faster than sound - that's why most people appear bright until you hear them speak.