---
title: "Ta bort allt utom 30 nyaste i MySQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/63834-ta-bort-allt-utom-30-nyaste-i-mysql"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "toja"
published: "2003-01-04T16:59:15.000Z"
updated: "2003-01-22T03:56:16.000Z"
replies: 7
views: 349
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/63834-ta-bort-allt-utom-30-nyaste-i-mysql"
---

# Ta bort allt utom 30 nyaste i MySQL

## #1 — toja, 2003-01-04T16:59Z

Har sökt här på webforum utan resultat...

kortfattat är min fråga om det finns någon motsvarighet till min påhitade query eller någon annan lösning...

Finns det något sätt att ta bort från MySQL... ungefär på detta sätt:

"DELETE FROM blabla WHERE bla = 'bla' ORDER BY DATE DESC LIMIT 30, X"
Alltså... den ska hela tiden ta bort alla mess utom de tretio nyaste.. 

Hoppas ni fattar.. :D

Permalänk: https://www.webforum.nu/p/63834

## #2 — LarsG, 2003-01-04T17:06Z

```
$q = "DELETE FROM blabla WHERE bla = 'bla' ORDER BY DATE DESC LIMIT 30, -1";
```

Permalänk: https://www.webforum.nu/p/902394

## #3 — toja, 2003-01-04T17:37Z

Tjena...

Har inte hunnit testa detta...
men måste bara fråga...
En kontrollfråga för att vara säker:
Om jag vill BEHÅLLA de 30 senaste... ska det vara "ORDER BY DATE DESC" eller ska jag skippa DESC... alltså.. i din query.. känns som det blir baklänges med -1.. haha.. :D

```
ORDER BY DATE DESC LIMIT 30, -1
```

\-1 ... hur fungerar det.. är det samma sak som 1 fast baklänges...

kan man tex använta

```
ORDER BY DATE DESC LIMIT -1, -10
```

För att visa de tio sista i databasen.?!

Permalänk: https://www.webforum.nu/p/902412

## #4 — LarsG, 2003-01-04T17:40Z

Desc skall vara kvar. -1 innebär att man tar till och med sista posten i resultatet.

Det går inte att ange ett negativt offset för limit.

Permalänk: https://www.webforum.nu/p/902415

## #5 — toja, 2003-01-04T18:04Z

Okej.. tack då lärde jag mig ngt nytt.. :D

Permalänk: https://www.webforum.nu/p/902439

## #6 — Webslave, 2003-01-05T15:36Z

Jag med...

Permalänk: https://www.webforum.nu/p/902831

## #7 — Fuel, 2003-01-21T23:27Z

detta funkar inte

finns det någon annan lösning ? typ räkna ut antal, minus 30 bla bla eller ?

Permalänk: https://www.webforum.nu/p/924443

## #8 — Fuel, 2003-01-22T03:56Z

hmm, vet inte om min lösning är bra, men den fungerar för mig

// ================================= Ta bort alla utom 30 senaste ===================================

$ids = mysql_query("SELECT id FROM newstable ORDER BY timestamp DESC LIMIT 1") or die (mysql_error());
$lineup = mysql_fetch_array($ids);
$number = $lineup\['id'\] -30;
mysql_query("DELETE FROM newstable WHERE id \< '$number'") or die (mysql_error());
	
// ==================================================================================================

kan bli problemtiskt om en nyhet är borttagen och det id numret saknas.. körde den på en sida som skrev ut nyheter och det funkade okej.. finns säkert nån bättre lösning

Permalänk: https://www.webforum.nu/p/924485

---

Tråden på webben: https://www.webforum.nu/amne/php/63834-ta-bort-allt-utom-30-nyaste-i-mysql
