Hoe kan ik alle records vanaf record 10 verwijderen? Ik dacht eers LIMIT 10,-1 maar dat werkt niet. En de MySQL handleiding snap ik nog steeds niet. Ik kan daar echt nooit wat vinden :S
Dat is een goeie en ik ben ook reuze benieuwd naar dit antwoord.
Wie~oh~wie heeft er raad?
Heb je iets om de records mee te ordenen?

Ik bedoel dus iets van een "created" kolom met als inhoud een timestamp of natuurlijk de primary key met autonummering. Als je dit hebt dan doe je het volgende:

DELETE FROM tabel ORDER BY created DESC LIMIT x


Waar x het aantal records is die je wil verwijderen tot dat je er nog 10 overhoud.
DELETE FROM tabelnaam WHERE id NOT IN(.....)

Bij de NOT IN() zet je een rijtje met id's die je wilt bewaren, bv. : NOT IN(23, 47, 98, 12)
De rest wordt verwijderd.
Zomaar een ideetje, weet dus niet of het werkt:
DELETE FROM tabel ORDER BY id DESC LIMIT 10

Of nee, zo delete hij alleen de laatste 10 rijen. Dan zal je het in combinatie met een COUNT moeten doen denk ik, dus rijen tellen, 10 ervan af, en deze query met op de plaats van 10 het zojuist verkregen getal.
Ik ga voor dat idee van Frank denk ik. Bedankt!
Dit zegt de MySQL handleiding:
To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter. This statement retrieves all rows from the 96th row to the last:

SELECT * FROM tbl LIMIT 95,18446744073709551615;


persoonlijk vind ik het niet erg netjes maarja :S
mmmm, das idd wel erg apart. In plaats van dat ze er nou gewoon ff een extra functie bij stoppen...

Reageren