0 zu NULL machen
Daniel#
- datenbank
Hallo zusammen!
Ich habe eine recht große Tabelle in MySQL in der tlw. viele Nullen in Feldern stehen, wo eigentlich nix sein sollte (also NULL). Wie kann ich das zügig ersetzen?
SELECT ALL FROM tbl WHERE ... Ja, da hörts dann auf, weil in fast allen der sehr sehr vielen Spalten irgendwo "0" steht.
Daniel
Wenn ich dich richtig verstehe ist die Loesung, statt SELECT ALL nur die Spalten der Tabelle zu selektieren, in denen du die 0en durch NULL ersetzen willst:
SELECT row1 FROM tbl WHERE...
(und dies ist ein Absatz fuer das super Forensystem :) )
Hello,
Ich habe eine recht große Tabelle in MySQL in der tlw. viele Nullen in Feldern stehen, wo eigentlich nix sein sollte (also NULL). Wie kann ich das zügig ersetzen?
seh ich das richtig, du hast in vielen Zeilen UND Spalten und suchst jetzt ein Statement, um das überall zu ersetzen?
Ui, das könnte lustig werden - wie viele Spalten sind das denn? Ich meine, relativ schnell geht ein UPDATE pro Spalte:
UPDATE table SET col1 = NULL WHERE col1 = 0
In einer Stored-Procedure kann man u.U. die Systemtabellen heranziehen, um das dynamisch über alle Spalten laufen zu lassen...
MfG
Rouven
Danke für die Antworten.
seh ich das richtig, du hast in vielen Zeilen UND Spalten und suchst jetzt ein Statement, um das überall zu ersetzen?
Genau!
Ui, das könnte lustig werden - wie viele Spalten sind das denn?
Hmmm naja... 240 :-( Ok, bei "nur" ca. 200 sind "0"...
Hello,
OK, das ist ne Masse. Also ich würde auf die Schnelle einfach ein kleines PHP-Skript oder irgendwas zusammenzimmern - geht es überhaupt um MySQL/PHP-Umfeld?
Wenn ja, dann besorg dir, wie z.B. im Beispiel von mysql_field_name gezeigt die Namen der Spalten und feuere anschließend das Statement aus meinem ersten Posting auf die jeweilige Spalte ab.
Alternativ, wie gesagt, der Zugriff direkt über die Systemtabellen (siehe MySQL-Manual: SHOW COLUMNS.
MfG
Rouven
Ja, es geht um PHP+MySQL... Ich werde es mal mit einem kleinen Script versucehn. Danke!