MySQL Feld A nach Feld B kopieren

julia29

Erfahrenes Mitglied
Hallo,

komme nicht weiter, möchte über die gesamte SQL-Tabelle ein Feld kopieren.

PHP:
SELECT 'tabelle1', 'feld7' AS 'feld8' FROM 'tabelle1';

Ich hatte es auch mit UPDATE versucht, klappt nicht.
Fehlermeldung: ....the right syntax to use near ' 'tabelle1'
demnach mag er das Zeichen ( ' ) nicht, mit ( " ) geht es aber erst recht nicht

mfg
Julia
 
Hallo,
Les das Feld doch über PHP aus, speicher es in einer Variable und füge das dann an die richtige Stelle ein.
Das müsste dann funktionieren
 
hi,

vielen Dank, da hätte ich auch drauf kommen können, war irgendwie auf phpmyadmin fixiert.
Das wird sicher funktionieren.
Danke für den Tipp.

mfg
Julia
 
Hi,

das Kopieren von einem Feld auf ein anderes ist ganz einfach mit einer UPDATE-Anweisung machbar:
PHP:
$sql = 'UPDATE tabelle1 SET feld1=feld2';

Damit weist du in der gesamten Tabelle ohne Einschränkung dem feld1 den Wert von feld2 zu.

PHP:
$sql = 'UPDATE tabelle1 SET feld1=feld2 WHERE feld3 > 5';

Hier ein Beispiel mit Einschränkung: In tabelle1 wird feld1 auf den Wert von feld2 gesetzt bei allen Datensätzen wo feld3 > 5 ist.
 
Frage: In der Tabelle "wcf1_user_option_value" muss ich den Inhalt einiger Felder kopieren. Z.B. von "userOption9" nach "userOption157" und den Hacken "NULL" bei "userOption157" entfernen. Welchen SQL Befehl muss man da in PhpMyAdmin machen?
 
Zuletzt bearbeitet:
Also um 157 mit den Werten aus 9 bei allen Datensätzen in der Tabelle zu ersetzen in PhpMyAdmin unter SQL Befehl:
UPDATE 'wcf1_user_option_value' SET 'userOption157'='userOption9'

oder

'UPDATE wcf1_user_option_value SET userOption157=userOption9'

Oder ganz anders? Möchte ungern groß Backups zurückspielen... das würde Stunden dauern.
 
Zuletzt bearbeitet:
Den Hacken NULL, meinst du den in der Tabellendefinition? Das geht über ALTER TABLE

Ansonsten stimmt dein 2ter Ansatz, wenn du ihn aus den Anführungszeichen raus nimmst und er dies über alle Einträge der Tabelle machen muss
SQL:
UPDATE
    wcf1_user_option_value
SET
    userOption157=userOption9
Wen
 
Zuletzt bearbeitet von einem Moderator:
Kleine Nachfrage, wie müsste der Befehl aussehen, wenn ich zwei Felder in eines haben möchte? Also in einem Feld ist der Ort im anderen die PLZ und die sollen in eines mit Leerzeichen dazwischen.

UPDATE
wcf1_user_option_value
SET
userOption157=userOption9+userOption10
 
CONCAT() ist das was du suchst wenn du eine Stringzusammensetzung meinst. Wenn du summieren willst, dann das +
SQL:
SET userOption157=CONCAT(userOption9,userOption10)

Und bitte in Zukunft die SQL-Statements nicht in Zitat-Tags sondern in SQL-Tags posten
[code=sql]SELECT....[/code]
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück