Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie teilt man die Namenszeichenfolge in MySQL auf?

Ich habe diese Antwort in zwei (2) Methoden unterteilt. Die erste Methode trennt Ihr Feld für den vollständigen Namen in Vor-, Mittel- und Nachnamen. Der zweite Vorname wird als NULL angezeigt, wenn es keinen zweiten Vornamen gibt.

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

Diese zweite Methode betrachtet den zweiten Vornamen als Teil des Nachnamens. Wir wählen nur eine Vorname- und eine Nachname-Spalte aus Ihrem Feld für den vollständigen Namen aus.

SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
    TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS last_name
FROM registeredusers

Es gibt eine Reihe cooler Dinge, die Sie mit substr, locate, substring_index usw. machen können. Sehen Sie im Handbuch nach, ob es wirklich Verwirrung gibt. http://dev.mysql.com/doc/refman /5.0/en/string-functions.html