2016-04-23 7 views
0

Ich habe ein Problem, drei Spalten in 1 in MySQL zusammenzuführen. Es ist wahr, dass ich einige Nullwerte in einigen der Spalten habe, aber ich denke, dass es keinen Unterschied macht, da es zuerst das richtige Ergebnis gibt, aber wenn ich die Tabelle durchsuche, bleiben die 3 Spalten und die neue Spalte bleibt leer. Dies ist der Code, den ich verwendet habe:Verschmelzen von 3 Spalten in 1 in MySQL

SELECT FirstName AS First_Name 
, LastName AS Last_Name 
, CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1) AS Contact_Phone 
FROM TABLE1 
+1

Sie wählen gerade eine Berechnung aus. Wolltest du die Struktur des Tisches verändern? – Mureinik

+0

Es macht mir nichts aus, die Tabellenstruktur zu ändern, solange ich eine Spalte habe, die die drei zusammenführt. –

Antwort

1

Ein Ansatz ist, um tatsächlich die Tabelle zu ändern:

  1. phpMyAdmin oder eine ALTER TABLE-Befehl verwenden, fügen Sie die ContactPhone Spalte
  2. UPDATE MyTable SET ContactPhone = CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1) gewünschten einzufügen (Haben Sie wirklich ContactPhoneNumber1 zweimal dort drin gehabt?)
  3. Und möglicherweise einen Auslöser schreiben, damit, wenn zukünftige Reihen hinzugefügt werden oder bestehende Reihen die Vorwahl oder die Telefonnummer haben, die ContactPhone Spalte automatisch ist y
  4. aktualisiert

Aber ein viel besserer Ansatz ist eine Ansicht auf den Tisch zu schaffen, die diese zusätzliche Spalte:

CREATE VIEW MyVIEW AS SELECT *, CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1, ContactPhoneNumber1) AS ContactPhone from MyTable

Dann können Sie die Ansicht verwenden, wie Sie die Tabelle verwendet, aber Es hat eine zusätzliche synthetisierte Spalte, die nie synchron gehalten werden muss.

+0

ContactPhoneAreaCode1, war nur eine Kopie und einfügen, eigentlich sind 2 verschiedene Spalten. Ich habe Ihren zweiten Ansatz versucht, es gibt Erfolg in phpmyadmin, aber die, wenn ich alles gleich bleibt –

+0

Ihre erste Annäherung resultierte in Ordnung. Vielen Dank! –

+0

Noch eine Frage, ich habe etwa 3000 Ergebnisse "null", da dies ein Import von Google-Kontakten ist, gibt es eine Möglichkeit, wo ich alle diese Zeilen auf einmal löschen kann? –