J'ai séparé cette réponse en deux (2) méthodes. La première méthode séparera votre champ de nom complet en prénom, deuxième prénom et nom de famille. Le deuxième prénom s'affichera comme NULL s'il n'y a pas de deuxième prénom.
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
Cette deuxième méthode considère le deuxième prénom comme faisant partie du nom de famille. Nous ne sélectionnerons qu'une colonne de prénom et de nom de famille dans votre champ de nom complet.
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers
Il y a un tas de choses sympas que vous pouvez faire avec substr, locate, substring_index, etc. Consultez le manuel pour une vraie confusion. http://dev.mysql.com/doc/refman /5.0/fr/string-functions.html