Mysql
 sql >> Database >  >> RDS >> Mysql

Come dividere la stringa del nome in MySQL?

Ho separato questa risposta in due (2) metodi. Il primo metodo separerà il campo del nome completo in nome, secondo e cognome. Il secondo nome verrà visualizzato come NULL se non è presente il secondo nome.

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

Questo secondo metodo considera il secondo nome come parte del cognome. Selezioneremo solo una colonna di nome e cognome dal campo del tuo nome completo.

SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
    TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers

Ci sono un sacco di cose interessanti che puoi fare con substr, locate, substring_index, ecc. Controlla il manuale per una vera confusione. http://dev.mysql.com/doc/refman /5.0/it/funzioni-stringhe.html