Is het mogelijk om door één query zonder allemaal php-functies er omheen de positie in een lijst te achterhalen?

Ik heb bijvoorbeeld een kolom 'posts' in een tabel en ik wil achterhalen op welke plaats degene met het id 14 staat in de 'highscore' van het posten.
ja sorteren op het aantal posts.
Ja, maar dan ga je alle mensen selecteren en maak je daar een lijst van. Ik wil met één query de positie van iemand in die lijst bepalen, zonder dat je een heleboel records selecteert.
Niet dat ik weet
Voorbeeldje, niet getest:

SELECT
  COUNT(posts) AS aantal,
  username
FROM
  tabelnaam
GROUP BY
  username
ORDER BY
  aantal DESC
Uitkomst:

<username1> 1
<username2> 1
<username3> 1
<username4> 1
Met 2 query's kan gemakkelijk:

query1:
SELECT posts FROM tabel WHERE id='je_gekozen_id'

In de 2e query ga je werken met het aantal posts dat je uit de 1e kreeg:

SELECT count(id) AS positie FROM tabel WHERE posts <= 'waarde_uit_vorige_query'

Snap je waar ik heen wil?


EDIT:

Ik weet dat je eigenlijk met 1 query wou, maar dat gaat volgens mij niet lukken.. Je moet eerst het aantal hebben van diegene met het door jou gekozen id, en dan moet je met dat aantal kijken hoeveel er hoger zijn..
ok, dat ga ik ff proberen!

[edit]Dat werkt, totdat ik mensen krijg met hetzelfde aantal posts. Ik heb namelijk 32 users, waarvan een flik aantal zonder posts. Als ik kijk op welke plaats één van de users zonder posts staat. is dat 33, terwijl er maar 32 plaatsen zijn en die speler ook nog eens op een heel andere plaats staat :S[/edit]

[edit]Ik order die lijst trouwens op punten en daarna op id, zodat als er meerdere zijn met hetzelfde aantal posts, de nieuwste onderaan komt.[/edit]
Mmmm, niemand weet nog iets anders zo te zien :'(
Je moet een unieke waarde weten. Dan kan je het altijd terug halen.

Of de unieke waarde nou het MAX() posts is, of het id van een user. Dit moet je in het stukje WHERE zetten.

Soms moet je dan subqueries gebruiken, maar zulke gegevens zijn altijd terug te halen. Ook zonder php-rompslomp.

* Wat voor database/versie heb je?
Ik heb MySQL 4.1.18-standard draaien.

Ik weet ook het id van de user (uiteraard :P)

Reageren