Mailinglisten-Archive |
Hallo alle zusammen, ich führe eine Datenbank mit Diskussionsbeiträgen. Dazu habe ich drei Tabellen: source - für die Datenquellen questions - für die Fragen (msgid ist der primary key) answers - für die Antworten (wiederum msgid als primary key, und dann auch noch refmsgid - die msgid, auf welche Frage es die Antwort ist. Es kann allerdings auch die Antwort auf eine Antwort sein - also eine schöne Baumstruktur) So weit, so gut. Nun möchte ich den Spam rauslöschen. Als Spam gilt, welche Betreffzeile (questions) öfter als 50 mal vorkommt. Anzeigen lassen kann ich das wunderschön mit SELECT subject, count(*) as anzahl FROM `question` group by subject having anzahl > 50 order by anzahl desc Wie kann ich aber nun alle diese Nachrichten rauslöschen? Bei einem delete kann ich ja kein group by verwenden, oder? Ich kann natürlich jetzt jeden Betreff aus dieser Anzeige nehmen und alle Beträge rauslöschen, die diesen Betreff haben, aber das wird doch etwas mühsam. Gibts einen einfacheren Weg dafür? Naja, und das war ja natürlich noch nicht alles. Ich möchte eigentlich nur diese Spam-Nachrichten rauslöschen, auf die es keine Antworten gibt. Gibts dazu eine Möglichkeit, das zu überprüfen (außer händisch)? Und wie lösche ich überhaupt rekursiv? Also sagen wir, ich möchte alle Beiträge (Fragen und Antworten) einer Datenquelle löschen. Die Fragen sind ja leicht, aber die Antworten und die Antworten auf die Antworten??? Leider findet man in der Doku dazu nicht wirklich hilfreiche Dinge. Ich weiß, das sind eine ganze Reihe komplizierter Fragen, aber ich bin mir sicher, dass das für euch um einiges leichter ist als für mich. Danke schön im Voraus, Helmut ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive