Wohingegen deins komplett fehlerhaft ist. Erstens macht das "WHERE COUNT(*) > 99" was total anderes, als du willst, zweitens würde es ohne den Fehler wegen dem fehlenden "LIMIT 1" alle Einträge löschen, sobald mehr als 99 vorhanden sind.
Also bitte, anstatt da irgendwelche "Verbesserungen" anbringen zu wollen, versuch doch einfach meine Lösung und werde glücklich. Oder sag zumindest nachher, was daran nicht geklappt hat.
...
Ganz einfach. Dein Code hat nur nen Syntax Error gebracht. Der mag das SELECT COUNT(x) und so weiter an der Stelle nicht. Also sag bitte nicht einfach mal aus Prinzip doch, wenns nicht stimmt. Ich hab keine Lust, als Stammuser noch geflamet zu werden.
@Jeez:
Dein Code hat den gleichen Fehler wie die bisherigen auch. Gezählt werden sollen alle Einträge, gelöscht aber nur welche, die schon bewertet wurden.
Ganz einfach. Dein Code hat nur nen Syntax Error gebracht. Der mag das SELECT COUNT(x) und so weiter an der Stelle nicht. Also sag bitte nicht einfach mal aus Prinzip doch, wenns nicht stimmt. Ich hab keine Lust, als Stammuser noch geflamet zu werden.
...
Sorry, hätte ich nicht gedacht. ó_Ò War nicht aus Prinzip "Doch" gesagt, sondern weil ich's getestet habe und keinen Fehler entdecken konnte. Allerdings auf PostgreSQL, hätte nicht gedacht, dass da so große Unterschiede sind. Aber wenn's echt nicht klappt, weiß ich nicht mehr weiter.
Da ja anscheinend auch sonst niemand eine funktionierende Lösung anzubieten hat (was ich so gesehen habe o_O) musst du wohl wirklich 2 Queries verwenden. :-/
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Sorry, hätte ich nicht gedacht. ó_Ò War nicht aus Prinzip "Doch" gesagt, sondern weil ich's getestet habe und keinen Fehler entdecken konnte. Allerdings auf PostgreSQL, hätte nicht gedacht, dass da so große Unterschiede sind. Aber wenn's echt nicht klappt, weiß ich nicht mehr weiter.
Da ja anscheinend auch sonst niemand eine funktionierende Lösung anzubieten hat (was ich so gesehen habe o_O) musst du wohl wirklich 2 Queries verwenden. :-/
...
Zwischen den einzelnen SQL-Dialekten gibt es starke Unterschiede. AFAIK hält sich niemand so wirklich an den aktuellen SQL-Standard.
BTW, ich habe rein theoretisch etwas. Das Konzept ist folgendes:
...wobei $limit die Anzahl der zu behaltenden Zeilen ist, in diesem Fall 100.
Dummerweise kann man bei limit unter keinen Umständen nichtskalare Werte verwenden, also braucht man zwei Queries:
Dummerweise läßt MySQL (und vermutlich SQL allgemein) nicht zu, daß man aus einer Tabelle löscht, während man gleichzeitig mit einem Subquery liest. Also bin ich mittlerweile schon bei drei Queries angekommen...
MySQL kann IN übrigens doch; der Subquery darf nur kein LIMIT beinhalten. Die aktuelle Version meines Ansatzes ist im Wesentlichen die letzte, nur daß das LIMIT jetzt am Ende steht und der Wert invertiert ist.
BTW, @DFYX' Kommentar zu meinem letzten Post: Du hast das "where num_votes > 0" schon bemerkt, oder?