Maison >base de données >tutoriel mysql >Comment extraire les prénoms, prénoms et noms de famille d'une chaîne de nom dans MySQL ?

Comment extraire les prénoms, prénoms et noms de famille d'une chaîne de nom dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-19 15:48:16383parcourir

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

Extraire le prénom, le deuxième prénom et le nom de la chaîne de nom dans MySQL

Diviser une chaîne de nom en ses composants (prénom, deuxième prénom, nom de famille) peut être une tâche utile dans le traitement des données. Dans MySQL, vous pouvez utiliser plusieurs méthodes pour y parvenir :

Méthode 1 (prénom, deuxième prénom, nom)

Cette méthode implique d'utiliser une combinaison de fonctions SUBSTRING_INDEX() et IF() pour extraire des noms individuels :

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

Dans cette requête :

  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) Extraire les noms.
  • IF(LENGTH(fullname) - LENGTH(REPLACE(fullname, ' ', '')) > 1, SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1), NULL) Vérifie si le deuxième prénom existe et l'extrait s'il est présent. S’il n’est pas présent, le deuxième prénom est défini sur NULL.
  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) Extrayez le nom de famille.

Méthode 2 (prénom, nom)

Si vous n'êtes intéressé que par le prénom et le nom, vous pouvez utiliser une requête plus simple qui utilise les fonctions LOCATE() et 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>

Dans cette requête :

  • SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) Extraire les noms.
  • TRIM(SUBSTR(fullname, LOCATE(' ', fullname))) extrait la partie du nom après le premier espace, vous donnant ainsi le nom de famille.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn