Come cambiare la struttura di un campo di nome in mysql
Domanda
Ho il seguente problema.
Il mio tavolo, diciamo TAB1, ha nome colonna come segue "Cognome, Nome". Voglio fare in modo che la colonna diventa "Nome Cognome".
Tutte le idee su come questo deve essere fatto? Si noti che non v'è alcuna virgola presente, ma credo che può essere facilmente rimosso una volta che ho a capire come capovolgere in realtà il primo e l'ultimo nome.
Qualsiasi aiuto sarebbe apprezzato.
Grazie.
Soluzione
sostituire @NAME con il valore reale:
SELECT TRIM(SUBSTR(@NAME, LOCATE(",", @NAME) + 1)) AS prename, TRIM(SUBSTR(@NAME, 1, LOCATE(",", @NAME) - 1)) AS surename
In questo modo estrarre la parte prename e cognome, ora è possibile inserire / modificare i dati come si desidera.
Altri suggerimenti
Non è una risposta alla tua domanda, ma non vorrei farlo in qualsiasi circostanza. Si perderà ogni possibilità di raccontare in modo affidabile a parte il cognome e nome. Prendere in considerazione i seguenti nomi:
Bridget St John
Boutros Boutros Ghali
Karl-Theodor Maria Nikolaus Freiherr von und zu Guttenberg
Mi consiglia di mantenere separata "cognome" e le colonne "Nome". È possibile concatenare loro come vi piace quando fate la vostra uscita.
UPDATE table SET name2=CONCAT (TRIM(SUBSTR(name, LOCATE(",", name) + 1)), ' ', TRIM(SUBSTR(name, 1, LOCATE(",", name) - 1)))