집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 이름 문자열에서 이름, 중간 이름, 성을 추출하는 방법은 무엇입니까?
MySQL의 이름 문자열에서 이름, 중간 이름, 성을 추출합니다.
이름 문자열을 구성 요소(이름, 중간 이름, 성)로 분할하는 것은 데이터 처리에 유용한 작업이 될 수 있습니다. MySQL에서는 이를 달성하기 위해 여러 가지 방법을 사용할 수 있습니다.
방법 1(이름, 중간 이름, 성)
이 방법에는 SUBSTRING_INDEX() 및 IF() 함수 조합을 사용하여 개별 이름을 추출하는 방법이 포함됩니다.
<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(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1)
이름을 추출합니다. IF(LENGTH(fullname) - LENGTH(REPLACE(fullname, ' ', '')) > 1, SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1), NULL)
중간 이름이 있는지 확인하고 있으면 추출합니다. 존재하지 않는 경우 중간 이름은 NULL로 설정됩니다. SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1)
성을 추출하세요. 방법 2(이름, 성)
이름과 성에만 관심이 있는 경우 LOCATE() 및 TRIM() 함수를 사용하는 더 간단한 쿼리를 사용할 수 있습니다.
<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(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1)
이름을 추출합니다. TRIM(SUBSTR(fullname, LOCATE(' ', fullname)))
은 첫 번째 공백 뒤의 이름 부분을 추출하여 효과적으로 성을 제공합니다. 위 내용은 MySQL의 이름 문자열에서 이름, 중간 이름, 성을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!