Im aktuellen Projekt bin ich auf die einfache Frage gestoßen wie man Namen die komplett in einer Spalte stehen wieder in Vorname / Nachname aufsplitten kann:
-- namen sind als [nachname] [vorname] gespeichert
SELECT
name,
-- lastname
SUBSTRING(name, 1, NULLIF(LOCATE(' ', name) - 1, -1))
-- firstname
SUBSTRING(name, LOCATE(' ', name) + 1, LENGTH(name)),
FROM users
-- namen sind als [vorname] [nachname] gespeichert
SELECT
name
-- firstname
CASE WHEN LOCATE(' ', name) > 0
THEN SUBSTRING(name, 1, LOCATE(' ', name)-1)
ELSE name
END,
-- lastname
CASE WHEN LOCATE(' ', name) > 0
THEN SUBSTRING(name, LOCATE(' ', name) + 1, LENGTH(name))
ELSE ''
END,
FROM users