Home >Database >Mysql Tutorial >How to Extract First, Middle, and Last Names from a Name String in MySQL?

How to Extract First, Middle, and Last Names from a Name String in MySQL?

Susan Sarandon
Susan SarandonOriginal
2025-01-19 15:48:16384browse

How to Extract First, Middle, and Last Names from a Name String in MySQL?

Extract first, middle and last name from name string in MySQL

Splitting a name string into its component parts (first name, middle name, last name) can be a useful task in data processing. In MySQL you can use several methods to achieve this:

Method 1 (first name, middle name, last name)

This method involves using a combination of SUBSTRING_INDEX() and IF() functions to extract individual names:

<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>

In this query:

  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) Extract names.
  • IF(LENGTH(fullname) - LENGTH(REPLACE(fullname, ' ', '')) > 1, SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1), NULL) Checks if the middle name exists and extracts it if present. If not present, the middle name is set to NULL.
  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) Extract the last name.

Method 2 (first name, last name)

If you are only interested in first and last names, you can use a simpler query that uses the LOCATE() and TRIM() functions:

<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>

In this query:

  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) Extract names.
  • TRIM(SUBSTR(fullname, LOCATE(' ', fullname))) extracts the part of the name after the first space, effectively giving you the last name.

The above is the detailed content of How to Extract First, Middle, and Last Names from a Name String in MySQL?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn