J'ai séparé cette réponse en deux(2) méthodes. La première méthode consiste à séparer le champ du nom complet en un prénom, un second prénom et un nom de famille. Le deuxième prénom sera affiché 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 à partir de 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 en savoir plus. http://dev.mysql.com/doc/refman/5.0/en/string-functions.html