How to split the name string in mysql?

后端 未结 16 2265
轮回少年
轮回少年 2020-11-22 11:44

How to split the name string in mysql ?

E.g.:

name
-----
Sachin ramesh tendulkar
Rahul dravid

Split the name like firstname

16条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-22 12:09

    SELECT
        p.fullname AS 'Fullname',
        SUBSTRING_INDEX(p.fullname, ' ', 1) AS 'Firstname',
        SUBSTRING(p.fullname, LOCATE(' ',p.fullname), 
            (LENGTH(p.fullname) - (LENGTH(SUBSTRING_INDEX(p.fullname, ' ', 1)) + LENGTH(SUBSTRING_INDEX(p.fullname, ' ', -1))))
        ) AS 'Middlename',
        SUBSTRING_INDEX(p.fullname, ' ', -1) AS 'Lastname',
        (LENGTH(p.fullname) - LENGTH(REPLACE(p.fullname, ' ', '')) + 1) AS 'Name Qt'
    FROM people AS p
    LIMIT 100; 
    

    Explaining:

    Find firstname and lastname are easy, you have just to use SUBSTR_INDEX function Magic happens in middlename, where was used SUBSTR with Locate to find the first space position and LENGTH of fullname - (LENGTH firstname + LENGTH lastname) to get all the middlename.

    Note that LENGTH of firstname and lastname were calculated using SUBSTR_INDEX

提交回复
热议问题