Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] pobieranie numeru rekordu
Forum PHP.pl > Forum > Przedszkole
zdzichu
Witajcie.
Poszukuję sposobu, by określić jaki numer ma osoba w rankingu. ranking jest ustalany na podstawie ilości rekordów w bazie z polem user_id odpowiadającym danemu użytkownikowi.
mam więc coś takiego:
  1. SELECT user_id,COUNT(*) AS ord FROM TABLE GROUP BY user_id ORDER BY ord DESC

...i jest pięknie - pokazuje mi, który user ma najwięcej wpisów, ale za nic w świecie nie potrafię  ustalić, który jest w rankingu (tzn. pokazać numer rekordu, pod którym występuje dany element przy tym sortowaniu)
nospor
moze to ci pomoze
http://nospor.pl/mysql-faq-n25.html#faq-8
zdzichu
hmm, strasznie to zagmatwane - nie ma jakiegoś prostszego sposobu na to? orientujesz się może jak zasobożerne jest takie zapytanie(dla w sumie nie aż tak wielkich ilości danych - kilka- kilkanaście tysięcy rekordów)
w każdym razie spłodziłem takie zapytanie:
  1. SET @id=53,@nr = 0, @idnr = 0;
  2. SELECT @idnr AS nr FROM (SELECT @nr:=@nr+1,IF(user_id=@id, @idnr := @nr,@idnr=@idnr),user_id,COUNT(*) AS ord FROM TABLE GROUP BY user_id ORDER BY ord DESC) podsel WHERE podsel.user_id = @id

i zwracany nr to zawsze 0...co jest tu nie tak?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.