Kermit: if Anweisung in Abfrage

Hallo,
habe mal eine Frage zur If-Anweisung in einem MySql Statement.

Habe z.B. die Abfrage
select feld1, feld 2, if(feld3, feld4, feld5) as angabe from Tabelle where....

kann ich in der if-Abfrage auch mehrere Felder abfragen, bzw. wie kann ich mehrere Parameter abfragen um zu bestimmen ob feld4 oder feld5 ausgegeben werden?
Geht sowas:
if(feld3='1' and feld6<=CURRENT_DATE and feld7>=CURRENT_DATE , feld4, feld5) as angabe
?
Oder muß das anders formuliert werden?

Da ich das derzeit selber nicht ausprobieren kann, wäre ich dankbar, wenn Ihr mir eine Antwort geben könntet.

Danke und Grüße,
Kermit

  1. SELECT feld1, feld2 FROM tabelle WHERE feld3='1'AND feld6<= CURRENT_DATE AND feld7>= CURRENT_DATE

    dein where hast du ja schon mit folgepünktchen. was spricht gegen solche formulierung?

    1. SELECT feld1, feld2 FROM tabelle WHERE feld3='1'AND feld6<= CURRENT_DATE AND feld7>= CURRENT_DATE

      dein where hast du ja schon mit folgepünktchen. was spricht gegen solche formulierung?

      select feld1, feld 2, if(feld3, feld4, feld5) as angabe from Tabelle where....

      naja es soll entweder feld4 oder feld5 als "angabe" ausgewählt werden je nachdem ob die Klauseln erfüllt sind oder nicht.
      So wie Du vorschlägst zeigt er mir ja nur die Ergebnisse, bei denen die Klauseln erfüllt sind und wenn sie nicht erfüllt sind kein Ergebnis - aber er soll abhängig von den Klauseln entweder feld4 oder feld5 als "angabe" wählen.

      Grüße,
      Kermit

      1. Hello,

        select feld1, feld 2, if(feld3, feld4, feld5) as angabe from Tabelle where....

        naja es soll entweder feld4 oder feld5 als "angabe" ausgewählt werden je nachdem ob die Klauseln erfüllt sind oder nicht.
        So wie Du vorschlägst zeigt er mir ja nur die Ergebnisse, bei denen die Klauseln erfüllt sind und wenn sie nicht erfüllt sind kein Ergebnis - aber er soll abhängig von den Klauseln entweder feld4 oder feld5 als "angabe" wählen.

        Als Ausdruck im IF darf jeder logisch auswertbare gültige SQL-Ausdruck erscheinen.

        http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html

        Für eine Mehrfachauswahl bietet sich auch CASE an.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau