2017-07-23 6 views
0

Ich habe neue Felder erstellt und muss sie basierend auf vorhandenen Feldern aktualisieren. Fragst du dich, ob MYSQL das mit Variablen kann oder muss ich PHP verwenden? Da die Tabelle sehr groß ist (300k + Reihen, nehme ich seine besten mit einer Abfrage erfolgt selbst möglich ist)Aktualisieren der Spalte basierend auf vorhandenen Feldern

Aktuell:

+-----+--------+--------------+ 
| pid | mfr |  pnum  | 
+-----+--------+--------------+ 
|  | MCAFEE | HIDYFM-AA-DA | 
+-----+--------+--------------+ 

Erwartet:

+-----------------------+--------+--------------+ 
|   pid   | mfr |  pnum  | 
+-----------------------+--------+--------------+ 
| MCAFEE___HIDYFM-AA-DA | MCAFEE | HIDYFM-AA-DA | 
+-----------------------+--------+--------------+ 
+0

Das ist nicht eine neue Spalte ist, aktualisieren Sie einfach eine vorhandene Spalte. Sie können eine UPDATE-Anweisung verwenden. Dies wäre jedoch ein einmaliges Update. Wenn Ihre Anforderung mehr als das ist, bedarf es einiger Klärung. –

+0

@AndyG Ja, es ist ein Feld, das ich erstellt habe, aktualisiert die Beschreibung. – 3zzy

+0

Wie vorgeschlagen, können Sie eine einmalige Aktualisierung durchführen, um die Spalte zu verketteten Werten aus den anderen Spalten zu aktualisieren. Wenn dies automatisch für neue Zeilen geschehen soll, können Sie wahrscheinlich einen Trigger vor dem Einfügen verwenden. Aber brauchst du diese * zusätzliche * Spalte? Sie können einen eindeutigen Index für die beiden Spalten erstellen und nur die verketteten Werte bei der Ausgabe anzeigen. –

Antwort

2

einfach verketten die beiden Felder und set zu pid

UPDATE table_name SET pid=CONCAT(mfr,"___",pnum) 
+0

Genau das, was ich wollte, danke !! – 3zzy

1

Sie können dies durch mysql-Abfrage tun. wie diese

update example set pid = concat(mfr ,"__",pnum); 

wo Beispiel Tabellenname

Verwandte Themen