sql >> Databasteknik >  >> RDS >> Mysql

Hur delar man upp namnsträngen i mysql?

Jag har delat upp det här svaret i två (2) metoder. Den första metoden kommer att dela upp ditt fullnamnsfält i för-, mellan- och efternamn. Mellannamnet kommer att visas som NULL om det inte finns något mellannamn.

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

Denna andra metod betraktar mellannamnet som en del av efternamnet. Vi kommer bara att välja en kolumn för förnamn och efternamn från ditt fullnamnsfält.

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

Det finns en massa häftiga saker du kan göra med substr, locate, substring_index, etc. Kolla i manualen för lite verklig förvirring. http://dev.mysql.com/doc/refman /5.0/en/string-functions.html



  1. TSQL e-postvalidering (utan regex)

  2. JSON_ARRAY_INSERT() – Infoga värden i en JSON-array i MySQL

  3. SQL Server Change Recovery Model

  4. Installerar MySQL-python