MySQLで名前文字列を分割するにはどうすればいいですか? 質問する

MySQLで名前文字列を分割するにはどうすればいいですか? 質問する

mysql で名前文字列を分割するにはどうすればいいですか?

例えば:

name
-----
Sachin ramesh tendulkar
Rahul dravid

名前を次のように分割しますfirstname,middlename,lastname:

firstname   middlename    lastname
---------  ------------   ------------
sachin     ramesh         tendulkar
rahul      dravid

ベストアンサー1

この回答を 2 つの方法に分けました。最初の方法では、フルネーム フィールドを名、ミドルネーム、姓に分けます。ミドルネームがない場合、ミドルネームは NULL として表示されます。

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

この 2 番目の方法では、ミドルネームを姓の一部とみなします。フルネーム フィールドから、名と姓の列のみを選択します。

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

substr、locate、substring_index などを使用すると、多くの便利な機能を実行できます。混乱を避けるためにマニュアルを確認してください。http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

おすすめ記事