UPDATE: Inhalt mehrerer Spalten in eine Updaten

Hi,
ich wollte in meinem (selbstentwickelten) Forum alle alten Posts in ein „archiv“ packen und ab heute einen neuen Stand beginnen.

Das Forum arbeitet in 2 Ebenen…

Obere Ebene = „TITLE“
Unter-Ebene = „TOPIC“

ich habe die umstellung mit folgendem Statement versucht

UPDATE forum
SET TOPIC = TITLE || ‚-‘ || TOPIC
WHERE TITLE != ‚Archiv‘

und anschließend

UPDATE forum
SET TITLE = ‚Archiv‘
WHERE TITLE != ‚Archiv‘

ich hab das ganze schon extra getrennt das sich die 2 änderungen nicht überschneiden.
aber TOPIC steht jetzt überall „0“ drin…

kann mir das jemand erklären? bzw mir sagen was ich falsch gemacht hab?

Hallo,

deinen Statements nach hast Du nichts falsch gemacht.

Die Syntax mit || kenne ich von Oracle. Ich vermute mal, du verwendest MySQL. Kann also sein, dass diese das anders macht (concat-Funktion).
Schau dir nochmals die Tabellenstruktur an. Vielleicht liegt dort der Fehler. (Falsches Attribut geändert, falscher Typ)

Du kannst die beiden Statements auch zusammenziehen, aber das wird nichts am Ergebnis ändern:

UPDATE forum
SET topic = title || ‚-‘ || topic, title = ‚Archiv‘
WHERE title != ‚Archiv‘;

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]