집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 문자열에서 이름, 중간 이름, 성을 추출하는 방법은 무엇입니까?
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, ...)
은 LOCATE에서 시작하여 중간 이름과 성을 포함한 나머지 문자열을 검색합니다. TRIM
선행 또는 후행 공백을 제거하세요. 위 내용은 MySQL의 문자열에서 이름, 중간 이름, 성을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!