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
Libérer: 2025-01-19 15:48:16
original
334 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal