MySQL Lösche alle bis auf die letzten X Datensätze

8

Ich habe ein Skript, das jede Stunde auf meiner PHP-Seite läuft. In diesem Skript möchte ich, dass irgendeine Art von MySQL-Abfrage jeden Datensatz aus einer Tabelle löscht, aber die letzten 50 sagt.

Wie würde ich so etwas tun?

%Vor%     
user1022585 16.01.2012, 20:44
quelle

3 Antworten

14

Sie könnten versuchen, NOT IN:

zu verwenden

BEARBEITEN für MySQL :

%Vor%

Dies ist für SQL-Server :

%Vor%

Angenommen, höhere Werte von id sind immer neuer.

    
Brissles 16.01.2012, 20:48
quelle
2

NOT IN ist ineffizient. Sie können die erste Option in der vorherigen Antwort leicht ändern, indem Sie @Mithrandir so aussehen lassen:

%Vor%     
esp 09.06.2015 12:31
quelle
0

Sie könnten so etwas ausprobieren:

%Vor%

Dies würde funktionieren, wenn Ihre Werte für ID in Schritten von 1 erhöht werden. Oder Sie können etwas wie:

verwenden %Vor%     
Mithrandir 16.01.2012 20:52
quelle

Tags und Links