---
title: "En viss posts sorteringsnummer?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/128752-en-viss-posts-sorteringsnummer"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "bassebhu"
published: "2005-05-23T19:02:43.000Z"
updated: "2005-05-25T14:00:05.000Z"
replies: 10
views: 395
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/128752-en-viss-posts-sorteringsnummer"
---

# En viss posts sorteringsnummer?

## #1 — bassebhu, 2005-05-23T19:02Z

Hej alla glada!

Om jag vill hämta en post och dessutom vill ha reda på vilken placering denna får om jag hade hämtat alla poster sorterat efter ett visst fält... Hur gör jag då på mest optimerade sätt...? Tanken är sedan att använda detta för att hämta en post åt gången snabbt så det ska helst inte vara en alltför krävande kodsnutt. (man klickar för att få nästa post alltså...)

Jag tänkte om man kunde pilla in nåt i:

```
$sql = "SELECT * FROM table WHERE id = '".$id."' ORDER BY date LIMIT 0,1";
```

Jag vill alltså veta vilken placering denna post hade fått om jag hade hämtat alla poster från tabellen.

Går det att lösa med en sql-fråga? Om inte, går det att lösa med två små sql-frågor? ;) 

Tackar för förslag!

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

## #2 — Niklasson, 2005-05-23T22:47Z

Tråden flyttas från PHP..

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

## #3 — pettsson, 2005-05-24T06:52Z

Vet inte hur du ska lösa positionsfrågan, men om sql-satserna ska vara så snabba som möjligt ska du inte använda LIMIT, det ökar tiden som krävs rätt duktigt. Hämta alla och använd mysql_data_seek istället.

Och varför skriver du "... WHERE id = '".$id.'"..." istället för "... WHERE id = $id ..."?

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

## #4 — bassebhu, 2005-05-24T10:49Z

Hur använder jag mysql_data_seek då?

Jag har skrivit '".$id.'" för att jag har hört att det är säkrare med enkelfnuttar runt värdena när man kollar mot databasen. Fel? Och att skriva '$id' funkar ju såklart inte...

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

## #5 — @nders, 2005-05-24T10:55Z

Apostrofer ska du ha runt värdet om fältet är av strängtyp (varchar / char / text), eller datumtyp. Inte om det är ett talfält. Är inte id-fältet av någon sorts taldatatyp?

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

## #6 — LarsG, 2005-05-24T11:06Z

> men om sql-satserna ska vara så snabba som möjligt ska du inte använda LIMIT

Det ställer jag mig ytterst tveksam till. Vad har du för belägg för det? I vissa fall är det förödande att inte ha med limit.

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

## #7 — bassebhu, 2005-05-24T11:35Z

Jo jag känner till att man inte brukar ha fnuttisar om det är tal, men då någon sa att det var säkrare med fnuttar så har jag kört på det även på tal då det har fungerat, men basseboy byter sätt nu då :)

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

## #8 — bassebhu, 2005-05-24T18:39Z

Ingen som har förslag ang. sorteringen?

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

## #9 — spango, 2005-05-25T08:24Z

> **bassebhu skrev:**
>
> Ingen som har förslag ang. sorteringen?

Du borde väl kunna lösa det med en subquery (brasklapp utfärdas, är en aning ringrostig):

```
SELECT *, (SELECT COUNT(*) FROM table t2 WHERE t2.date > t1.date) AS num_rows_greater 
FROM table t1 WHERE id = någonting ORDER BY date LIMIT 0,1
```

Sen är subquerys inte direkt det bästa om man vill ha snabba svar, men det är så det är.

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

## #10 — spango, 2005-05-25T08:29Z

> **bassebhu skrev:**
>
> Jo jag känner till att man inte brukar ha fnuttisar om det är tal, men då någon sa att det var säkrare med fnuttar

Vill du ha det säker ska du konvertera det till ett tal innan du bakar in det i strängen, så att du inte får med något annat än själva det numeriska värdet. Typ injicerad SQL-kod.

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

## #11 — pettsson, 2005-05-25T14:00Z

> **LarsG skrev:**
>
> > men om sql-satserna ska vara så snabba som möjligt ska du inte använda LIMIT
>
> 
> 
> Det ställer jag mig ytterst tveksam till. Vad har du för belägg för det? I vissa fall är det förödande att inte ha med limit.

Jaså? Det var du som tipsade om det [här](http://www.webforum.nu/showthread.php?s=&postid=123909#post123909), så jag prövade och fick resultatet att det tog lite mer än dubbelt så lång tid att hämta 20 rader m.h.a. LIMIT än att hämta alla och sedan söka inom resultatet. Fel?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/128752-en-viss-posts-sorteringsnummer
