Bau einer bestimmten MySQL Abfrage / Immer wieder Fehlermeldungen

  • Hallo zusammen,


    ich doktor gerade an einer MySQL Abfrage herum, komme aber nicht auf das Ergebnis und erhalte immer eine SQL Fehlermeldung, weil die Abfrage falsch gebaut ist.


    Folgendes will ich erreichen:


    Ich habe eine Spalte 1 mit den Namen von juristischen Personen (also Firmen)

    Manchmal ist Spalte 1 leer, weil es eine natürliche Person ist. Dann gibt es aber Spalte 2 mit Vornamen und Spalte 3 mit Nachnamen.


    Ich brauche nun eine Abfrage, mit der ich prüfen kann, ob Spalte 1 leer ist. Falls ja, muss Spalte 2 und 3 so gezogen werden, dass die Ausgabe "Nachname, Vorname" also "spalte3, spalte2" ist.


    ich brauche das Ergebnis in den Ergebnis-Feldern "value" und "label" zurück.


    Einer meiner vielen Versuche war z. B. so:


    SELECT Spalte1 if(spalte1 = "", spalte3.", ".spalte2 as value), spalte1 if(spalte1 = "", spalte3.", ".spalte2 as label, spalte 1 as label) from tabellenname


    Hier erhalte ich aber immer Fehlermeldungen.


    Leider muss ich das auch tatsächlich mit einem SQL statement erledigen und nicht mit PHP, sonst wäre ich schon durch.


    Meine DB läuft unter MySQL 5.7


    Ich wäre hoch erfreut, wenn mit jemand helfen könnte.

  • Schaue mal hier hier gibt es einige Beispiele:
    https://www.w3resource.com/mys…functions/if-function.php


    Wenn Spalte1 leer ist, dann ist es NULL - also IF(spalte1 IS NULL, ...)
    SELECT IF(...) AS Blablub FROM ...

    2 Spalten zusammenfügen mit CONCAT

    CONCAT(spalte2,", ",spalte3)


    Möglich wäre demnach

    SQL
    SELECT IF(spalte1 IS NULL, CONCAT(spalte2, ", ", spalte3), spalte1) AS label FROM tabellenname 

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.