2016-04-20 20 views
0

Ich habe eine Tabelle ML, mit Spalte Klubs:Spaltsäule in zwei Spalten mit unterschiedlichen String zählen in MySQL

table

ich diese Spalte geteilt werden soll, so habe ich zwei Spalten so. Neuer Tabellenname ML2 und Spaltenname Region.

Die erste Spalte kann zwei Wörter enthalten, wenn sie sich vom Wort der zweiten Spalte unterscheiden.

desired output

Ich bin neu in MySQL und durchsucht alle über Stackoverflow und Internet, aber kein Glück.

Wie kann Spalte Klubs von Tabelle ML wie im 1. Bild in neue Tabelle ML2 mit 2 Spalten wie im 2. Bild aufgeteilt werden?

+0

Sein eine einmalige Aufgabe ?? – NishantMittal

+0

Ich denke NEIN! Dies ist nur ein Teil der Spalte! Alle Tische haben 128 Reihen! –

+0

Wirklich? Sie werden ein Programm schreiben, um 128 Zeilen in einer Datenbank zu aktualisieren? Verwenden Sie einen Texteditor, um einen CSV-Extrakt zu ändern, oder verwenden Sie eine Tabellenkalkulation, um einzelne Zustände zu erzeugen. UPDATE yurtable SET coil1 = 'Toronto', col2 = 'Praptors' WHERE col1 = 'Toronto Raptors'' – symcbean

Antwort

0

Unter der Annahme, dass Ihre zweite Spalte keine Leerzeichen enthält, können wir für die Position des letzten Platzes suchen, und dann aufgeteilt:

SELECT Klubs, 
substr(Klubs, 1, char_length(Klubs) - instr(reverse(Klubs),' ')) as Region, 
substr(Klubs, char_length(Klubs) - instr(reverse(Klubs),' ')+2) as Club 
FROM ML; 

ich mit instr für den Raum zu suchen, und zu tun In diesem umgekehrten Fall verwende ich zuerst die Funktion für die Zeichenfolge, und um sie zu kompensieren, subtrahiere ich sie von der Länge der Zeichenfolge mit char_length.

Man konnte es in einem new table (ML2) einfügen:

create table ML2 
<the query> 

oder create a view:

create view ML2 as 
<the query> 
+0

** Danke! ** Arbeitete für alle Tische! –

Verwandte Themen