Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como dividir a string de nome no mysql?


Eu separei esta resposta em dois (2) métodos. O primeiro método separará seu campo de nome completo em nome, nome do meio e sobrenome. O nome do meio será exibido como NULL se não houver nome do meio.
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

Este segundo método considera o nome do meio como parte do sobrenome. Selecionaremos apenas uma coluna de nome e sobrenome do seu campo de nome completo.
SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
    TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers

Há um monte de coisas legais que você pode fazer com substr, locate, substring_index, etc. Verifique o manual para alguma confusão real. http://dev.mysql.com/doc/refman /5.0/en/string-functions.html