MySQL の文字列フィールドから名、ミドルネーム、姓を抽出します
名前文字列を名、ミドルネーム、姓に分割することは、データ処理における一般的なタスクです。 MySQL は、この目的のためにさまざまな機能を提供します。
方法 1: 名、ミドルネーム、姓を分けます
このメソッドは、SUBSTRING_INDEX 関数と LENGTH 関数を利用して名前の各部分を抽出します。
<code class="language-sql">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;</code>
説明:
SUBSTRING_INDEX(fullname, ' ', 1)
最初のスペースまでの文字列の部分を抽出します。 SUBSTRING_INDEX(..., ' ', -1)
この文字列から最後の要素を取得し、名前を指定します。 IF
文字列に複数のスペースが含まれているかどうかを確認します (ミドルネームの存在を示します)。 SUBSTRING_INDEX(..., ' ', 2)
次に、ミドルネームと姓を含む部分を分離します。 SUBSTRING_INDEX(..., ' ', -1)
文字列の最後の部分を抽出して姓を提供します。 方法 2: 名と姓を分ける
ミドルネームが姓の一部とみなされる場合は、次の方法を使用できます:
<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name, TRIM(SUBSTR(fullname, LOCATE(' ', fullname))) AS last_name FROM registeredusers;</code>
説明:
SUBSTRING_INDEX(fullname, ' ', 1)
最初のスペースまでの文字列の部分を抽出し、名前を提供します。 LOCATE(' ', fullname)
最初のスペースの位置を見つけます。 SUBSTR(fullname, ...)
は、ミドルネームとラストネームを含む残りの文字列を取得します。 TRIM
先頭または末尾のスペースを削除します。 以上がMySQL の文字列から名、ミドルネーム、姓を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。