Ich habe einen E-Commerce-Shop, an dem ich gerade arbeite und es gibt ca. 300 Produkte, die ein Feld namens "product_url"
habenDiese Felder enthalten eine alte URL, die ich komplett löschen muss.
Wie kann ich eine Abfrage erstellen, die alle "product_url" -Felder durch Daten mit einem Nullwert ersetzt?
Damit wird jede product_url auf NULL gesetzt, was momentan nicht null ist.
%Vor%Wenn Sie zuerst 300 Tabellen haben (eine für jedes Produkt), können Sie keine Abfrage schreiben, die Produkt-URLs auf NULL setzt.
Sie müssen eine Abfrage für jede Tabelle schreiben ( UPDATE table_name SET product_url = NULL
, wie andere bereits gesagt haben).
Und wenn Sie an einem Tag 10.000 Produkte haben, werden Sie 10.000 Tische haben, wenn Sie so weitermachen. Dies wird ein Wartungs-Albtraum, da Sie jetzt sehen können, welche Art von Problemen Sie mit 300 Tabellen haben.
Ihre Datenbank ist denormalisiert. Wenn Ihre Produkte dieselben Attribute haben, sollten sie sich in einer Tabelle namens "Produkte" befinden und jedes Produkt sollte als eine Zeile dargestellt werden. Nur dann können Sie mit einer Abfrage tun, was Sie wollten.
Haben Sie für jedes Produkt eine Tabelle? Wenn dem so ist, weiß ich es nicht.
Sonst;
%Vor% Wenn Sie viele Tabellen mit demselben Präfix und derselben Struktur haben, können Sie SHOW TABLES LIKE prefix_%
verwenden. Durchlaufen Sie dann die Ergebnismenge dieser Abfrage und führen Sie separate Abfragen für jede Tabelle aus.
Dadurch werden alle Daten in dieser Spalte gelöscht, ohne die Spalte selbst zu löschen.
%Vor%Tags und Links mysql