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!