Ik heb dit antwoord opgedeeld in twee (2) methoden. De eerste methode scheidt uw veld met volledige naam in voor-, middelste en achternaam. De middelste naam wordt weergegeven als NULL als er geen tweede naam is.
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
If( length(fullname) - length(replace(fullname, ' ', ''))>1,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1) ,NULL)
as middle_name,
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) AS last_name
FROM registeredusers
Deze tweede methode beschouwt de middelste naam als onderdeel van de achternaam. We selecteren alleen een kolom voornaam en achternaam uit uw veld met volledige naam.
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers
Er zijn een heleboel coole dingen die je kunt doen met substr, lokaliseren, substring_index, enz. Raadpleeg de handleiding voor enige echte verwarring. http://dev.mysql.com/doc/refman /5.0/nl/string-functions.html