---
title: "Endast sista posten"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/62458-endast-sista-posten"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ulsy"
published: "2002-12-17T16:56:30.000Z"
updated: "2003-01-08T08:11:42.000Z"
replies: 16
views: 478
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/databaser-sql/62458-endast-sista-posten"
---

# Endast sista posten

## #1 — ulsy, 2002-12-17T16:56Z

Hur skriver jag i en fråga för att endast få fram sista inmatade posten?

Troligen lätt för den som vet :OO

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

## #2 — Darren, 2002-12-17T17:08Z

Detta var ju en bra fråga... Jag vet hur du kan göra detta genom att kombinera två frågor...

```
// ta reda på antal rader i tabellen...
$sql = "SELECT COUNT(*) FROM din_tabell";
$query = mysql_query($sql);

$result = mysql_fetch_array($query);
mysql_free_result();

// läs databasen igen med början från sista raden
$sql = "SELECT * FROM din_tabell LIMIT ($result - 1), 10";
$query = mysql_query($sql);

$result_1 = mysql_fetch_array($query);
mysql_free_result();
```

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

## #3 — ulsy, 2002-12-17T17:27Z

Tack, men går det inte att lösa direkt i frågan?

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

## #4 — LarsG, 2002-12-17T18:13Z

Vad menar du med sista? Det finns inget sådant begrepp i en relationsdatabas.

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

## #5 — Darren, 2002-12-17T18:55Z

> **ulsy skrev:**
>
> Tack, men går det inte att lösa direkt i frågan?

Vad jag vet så stödjer inte MySQL (version lägre än 4) sk 'subquerys'... Då blir det ju svårt att få detta att fungera med bara en fråga.

LarsG du om någon bör ju veta hur man skall göra här... Kom med dina tips och trick :)

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

## #6 — @nders, 2002-12-17T19:01Z

Så länge man har en räknarkolumn eller datum/tid-fält att sortera på borde det inte vara något problem att få till i en fråga för att få ut den senast inlagda posten.

```
SELECT * FROM dintabell ORDER BY ID-kolumn DESC LIMIT 1, 1
```

Mvh,

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

## #7 — ulsy, 2002-12-17T20:08Z

Jag tror att lösningen finns i @nders svar, men jag har inte testat  än.
Vad jag menar LarsG är att jag har en tabell som innehåller bla. en ID-kolumn, jag vill få ut senaste registrerade posten mao. den post som har högst ID.

Hoppas att detta var mer korrekt formulerat och förståeligt.
 :)

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

## #8 — LarsG, 2002-12-17T20:20Z

> jag vill få ut senaste registrerade posten mao. den post som har högst ID.

Det behöver inte vara samma sak. I vissa lägen och beroende på tabelltyp så kan mysql återutnyttja id för poster som har blivit borttagna. Det kan också ske andra insert i samma tabell efter din insert och innan din select.

I mysql finns funktionen 

last_insert_id()

som returnerar det id som senast lagrade post fick

```
q = "insert ..."
connect.execute q,,128
set rs = connect.execute("select last_insert_id()")
newid = rs(0)
```

Det är det enda säkra sättet att få tag på senaste genererade värdet för en auto_increment kolumn.

Om du vill ha posten med högst id så fungerar @nders kod med en liten modifikation

```
SELECT * FROM dintabell ORDER BY IDkolumn DESC LIMIT 0, 1
```

offset startar med 0 och inte 1

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

## #9 — ulsy, 2002-12-17T21:22Z

Det verkar ju vara det jag letar efter, men hur ser själva frågan ut?
Jag har gjort några försök men endast fått tillbaka massa nollor.

Tacksam för idé på fråga

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

## #10 — LarsG, 2002-12-18T07:27Z

Hur ser din kod ut?

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

## #11 — ulsy, 2002-12-22T10:54Z

Nu ser den ut så här:

```
SELECT last_insert_id (id-kolumn) FROM tabell
```

Och då kommer alla id upp i en följd och det är ju inte det jag vill.

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

## #12 — LarsG, 2002-12-27T17:40Z

Funktionen last_insert_id fungerar bara direkt efter insert och kan inte användas på det sätt som du har gjort. 

Jag förstår inte vad du vill ha för resultat.

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

## #13 — ulsy, 2002-12-29T10:10Z

Jag vill kunna se vilken post som senast blev registrerad.

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

## #14 — prey, 2003-01-06T01:39Z

Här är en bra SQL-sats för ändamålet:

"SELECT \* FROM tabell ORDER BY id DESC LIMIT 1"

id kan oxå va datum..

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

## #15 — ulsy, 2003-01-06T22:27Z

Tack Prey!
Men enligt LarsG är det inte säkert att den sist registrerade posten har högst ID och då är frågan hur man fixar detta?

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

## #16 — Matte, 2003-01-06T23:54Z

Du måste ha något att sortera efter, lämpligen ett tidsfält av formatet TIMESTAMP eller DATETIME. Kanske har du redan ett sådant, isåfall kan du använda det.

Låt oss kalla tidsfältet för 'time'.

Vill du få fram sista posten som lagts till (insert) eller ändrats (update) så använder du TIMESTAMP. Du ska inte tilldela TIMESTAMP-fältet något värde när du gör dina insert eller update, det fixar TIMESTAMP-fältet själv.

Är det endast när posten lagts till du vill sortera efter så använder du DATETIME. då får du ge fältet värdet now() vid insert.

Sen hämtar du sista post som visats tidigare:

```
SELECT * FROM dintabell ORDER BY time DESC LIMIT 0, 1
```

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

## #17 — ulsy, 2003-01-08T08:11Z

Det verkar smart Matte, testar  detta senare. Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/62458-endast-sista-posten
