
Es kam die Anfrage herein, die Werte für ein Feld in einer Datenbank-Tabelle für alle Datensätze so zu ändern, dass sich der neue Wert aus einem vorgegeben String und einem anderen Feld aus der gleichen Tabelle zusammensetzt. Eigentlich ein klassischer Fall für ein Subselect, aber soweit ich weiß, ist ein Subselect in einem Update auf auf die gleiche Tabelle nicht möglich.
Mir ist nur die folgende Lösung eingefallen:
CREATE TABLE temp_select SELECT * original_tabelle;
UPDATE original_tabelle SET dasFeld = (
SELECT
CONCAT('prefix-',dasAndereFeld)
FROM temp_select
WHERE
temp_select.id = original_tabelle.id
);
DROP TABLE temp_select;Ist immer noch recht einfach, aber vielleicht hat ja jemand noch eine bessere Idee – Anregungen und Vorschläge sind sehr willkommen.
Tags: MySQL
