MySQL Abfrage benötigt: Ich muss alle Daten in einem einzigen Feld aus 300 Tabellen löschen

7

Ich habe einen E-Commerce-Shop, an dem ich gerade arbeite und es gibt ca. 300 Produkte, die ein Feld namens "product_url"

haben

Diese 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?

    
Andy Smith 10.02.2011, 14:23
quelle

7 Antworten

25

Damit wird jede product_url auf NULL gesetzt, was momentan nicht null ist.

%Vor%     
FrustratedWithFormsDesigner 10.02.2011, 14:27
quelle
4

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.

    
darioo 10.02.2011 14:30
quelle
2

Haben Sie für jedes Produkt eine Tabelle? Wenn dem so ist, weiß ich es nicht.

Sonst;

%Vor%     
Niclas Lindqvist 10.02.2011 14:27
quelle
2

Nur eine Interpraktion ...

%Vor%     
Jawa 10.02.2011 14:28
quelle
1

Vorausgesetzt, dass ALLE Einträge mit NULL gefüllt werden:

%Vor%     
EthanM 10.02.2011 14:26
quelle
1

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.

    
Blagovest Buyukliev 10.02.2011 14:32
quelle
0

Dadurch werden alle Daten in dieser Spalte gelöscht, ohne die Spalte selbst zu löschen.

%Vor%     
ahmed.soli 21.12.2017 13:53
quelle

Tags und Links