sql >> Database >  >> RDS >> Mysql

Hoe de naamreeks in mysql te splitsen?

Ik heb dit antwoord opgedeeld in twee (2) methoden. De eerste methode scheidt uw veld met volledige naam in voor-, middelste en achternaam. De middelste naam wordt weergegeven als NULL als er geen tweede naam is.

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

Deze tweede methode beschouwt de middelste naam als onderdeel van de achternaam. We selecteren alleen een kolom voornaam en achternaam uit uw veld met volledige naam.

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

Er zijn een heleboel coole dingen die je kunt doen met substr, lokaliseren, substring_index, enz. Raadpleeg de handleiding voor enige echte verwarring. http://dev.mysql.com/doc/refman /5.0/nl/string-functions.html



  1. Hoe kunnen meerdere rijen worden samengevoegd tot één in Oracle zonder een opgeslagen procedure te maken?

  2. Hoe een tabel te maken met behulp van de sqlite-database in Android?

  3. Krijg een vreemde fout, SQL Server-query met behulp van de `WITH`-clausule

  4. Hoe importeer ik een CSV-bestand in een MySQL-tabel?