Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment diviser la chaîne de nom dans mysql?

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