Anfängerfrage Delete order by ASC Limit 10,1000

che1974

Neuer Benutzer
Beiträge
2
Guten Tag,

Ich habe da eine (Anfänger) Frage:
Mein Table Raum besteht aus 3 Spalten:

Room_73
id (<--P.Key)
name
points

Ich brauche in der Datenbank nur die 10 besten Zeiten und würde gerne die DB sauber halten und täglich per Cronjpb ein PHP Script ausführen um den Rest zu löschen.

Wie kann ich in MySql eine Delete Abfrage erstellen die mir die Daten zuerst nach Points ASC sortiert und danach die Einträge ab Zeile 11 löscht ??

Das habe ich schon versucht und erzeugt nur eine Fehlermeldung:

DELETE FROM Room_73
WHERE id NOT IN ( SELECT id FROM
(SELECT id FROM Room_73
ORDER BY points ASC LIMIT 1 OFFSET 10) foo );


mfg
Jürgen Bruckner
 
Werbung:
Guten Tag,

Ich habe da eine (Anfänger) Frage:
Mein Table Raum besteht aus 3 Spalten:

Room_73
id (<--P.Key)
name
points

Ich brauche in der Datenbank nur die 10 besten Zeiten und würde gerne die DB sauber halten und täglich per Cronjpb ein PHP Script ausführen um den Rest zu löschen.

Wie kann ich in MySql eine Delete Abfrage erstellen die mir die Daten zuerst nach Points ASC sortiert und danach die Einträge ab Zeile 11 löscht ??

Das habe ich schon versucht und erzeugt nur eine Fehlermeldung:

DELETE FROM Room_73
WHERE id NOT IN ( SELECT id FROM
(SELECT id FROM Room_73
ORDER BY points ASC LIMIT 1 OFFSET 10) foo );


mfg
Jürgen Bruckner

Schau Dir Dein inneres Select an und prüfe, ob es die richtigen liefert.
 
Wie in dem Stackoverflow-Beitrag zu sehen ist die Fehlermeldung die Selbe wie bei allen MySQL-Fehlern:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near <beliebiger Code-Teil>
Das mag ich am liebsten an MySQL.
 
Werbung:
Danke an alle.
Habe die Lösung bei Dr. Goolge gefunden ;-)

DELETE t
FROM
Room_73 t
JOIN
( SELECT id
FROM Room_73
ORDER BY points ASC
LIMIT 10,500
) tmp
ON tmp.id = t.id


Wobei bei LIMIT 10,500 auch ein höherer Wert verwendet werden kann.
Ich brauche diese Abfrage für eine online Highscore bei einem Android Game (Labyrinth Bruckner).

Danke nochmals..
lg
che
 
Zurück
Oben