dedlfix: SQL Update über alle Spalten einer Tabelle

Beitrag lesen

Hi!

In der Tabelle haben manche Datensätze in mehreren Spalten den Integer-Wert 0, diesen möchte ich durch NULL ersetzen.
Da es zu viel Arbeit wäre jede Spalte einzeln in einen Update zu packen, wollte ich fragen, wie ich so etwas mit einer Schleife lösen kann (bisher gar keine Erfahrung damit).

Es geht in einem einzigen Update-Statement.

UPDATE SET spalte1 = IF(spalte1 = 0, NULL, spalte1), spalte2 = IF(...

Das Problem ist, dass man trotzdem jede Spalte einzeln ansprechen muss. Es gibt kein UPDATE SET * = irgendwas. Es bleibt, die Spaltennamen entweder zu ermitteln oder als Liste vorliegen zu haben, und daraus das eine oder viele Einzel-Updates zu erstellen. Innerhalb SQLs wie schon erwähnt mit einer Stored Procedure, Prepared Statement (à la eval()) und die Spaltennamen bekommt man über die Pseudo-Datenbank INFORMATION_SCHEMA.

Lo!