Felix Riesterer: MySQL bedingtes Leerzeichen hinzufügen

Beitrag lesen

Liebe DB-Experten,

meine SQL-Kenntnisse sind noch immer ungenügend, sodass ich folgendes Problem nicht verstehe bzw. lösen könnte:

Ich möchte zu einem Ortsnamen einen Zusatz ausgeben, der nach einem Leerzeichen stehen soll, wenn dieser Zusatz nicht mit einem Komma oder Slash beginnt.

Beispiel-Ausgaben (gewünscht):
73479 Ellwangen (Jagst)
03226 Vetschau/Spreewald

In obigen Beispielen ist der Zusatz "(Jagst)" mit einem Leerzeichen getrennt, der Zusatz "/Spreewald" nicht.

Mein Ansatz ist dieser:

SELECT  
    CONCAT(  
        `orte`.`PLZ`,  
        ' ',  
        `orte`.`Name`,  
        (  
            SELECT  
                ' '  
            WHERE  
                `orte`.`Zusatz` REGEXP '^[^,/]'  
        ),  
        `orte`.`Zusatz`  
    ) AS `Ort_detailliert`  
FROM `orte`

Das Ergebnis ist eine Fehlermeldung dieser Art:

MySQL-Fehler (1064) You have an error in your SQL syntax; [...] syntax to use near 'WHERE orte.Zusatz REGEXP '[1]'), orte.Zusatz ) AS ' at line xyz

Was mache ich falsch? Mir will nicht einleuchten, wo ich da die SQL-Syntax verletze. Wer kann mir weiterhelfen?

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)

  1. ^,/ ↩︎