MySQL CONCAT mehrere Felder mit IF-Anweisung
Ich versuche, etwas zu tun, dachte ich, wäre einfach, aber ich bin stecken. Ich im Grunde möchten, erstellen Sie eine einzelne Adresse im Feld von-Adresse mehrere Teil-Felder, mithilfe einer IF-Anweisung verwenden Sie entweder eine Adresse oder Kreuzung. Hier ist mein statement vom Acker zu machen:
CONCAT(loc_name,'\n',
IF ( add_number != '' && add_street != '' ) THEN
CONCAT(add_number,' ',add_street,'\n')
ELSEIF ( x_street_1 != '' && x_street_2 != '' ) THEN
CONCAT(x_street_1,' & ',x_street_2,'\n')
END IF
,city,', ',
IF ( state != '') THEN
CONCAT(state,' ',country,'\n')
ELSEIF ( x_street_1 != '' && x_street_2 != '' ) THEN
CONCAT(country,'\n')
END IF
) AS loc_info
Aber es nicht mag, was ich Tue, es wirft einen Fehler auf:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') THEN \n\t\t\t\t\t\tadd_number,' ',add_street,'\n'\n\t\t\t\t\tELSEIF ( x_street_1 != '' && x_"
Scheint, wie Sie mag es nicht, meine leere Feld ( " ) - notation. Aber ich weiß nicht, warum. Kann ich nicht verwenden Sie die IF-Anweisung innerhalb einer CONCAT-wie das?
Vielen Dank für jede Einsicht.
InformationsquelleAutor dgig | 2013-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die syntax ist nicht korrekt. Sie verwenden möchten
CASE
:Ergebnis
Nur suchen und ersetzen
@
mit.
Cool, und ich fand diese kurze Erklärung zum Unterschied zwischen FALL-und WENN: stackoverflow.com/questions/13699908/...
InformationsquelleAutor Kermit
IIRC, die syntax, die Sie verwenden möchten, ist
Ich könnte falsch sein, aber möchten Sie vielleicht zu versuchen.
InformationsquelleAutor Jason Swett
dies könnte auch helfen:
auch was vergleichen Sie hier
state != ''
ist es gegen null-Werte??wenn dem so ist dies wird Ihnen falsche Antwort verwenden Sie
state IS NOT NULL
statt.InformationsquelleAutor sourcecode