Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie ilości rekordów do spełnienia warunku
Forum PHP.pl > Forum > Bazy danych > MySQL
chomiczek
W jaki sposób można zrobić zapytanie, które powinno zwrócić mi pozycje w bazie danych..

a mianowicie interesuje mnie zapytanie typu:
  1. SELECT * FROM `nazwa` ORDER BY `jakasWartosc`

ale połączone z zapytanie
  1. SELECT * FROM `nazwa` WHERE `user` = 'jakasNazwa' LIMIT 1


Czyli tak naprawdę posortowanie całej tabeli wg. jakaswartosc, a następnie zwrócenie kolejnej pozycji zliczania, która spełni drugi warunek, czyli user == 'jakasNazwa'

Można to zrobić w zapytaniu czy trzeba w PHPie? W PHP można bez problemu, ale może da radę 1 zapytaniem.

Ogólnei potrzebuje tylko, żeby otrzymać np. 7658, która będzie odzwierciedlała kolejny rekord po zastosowaniu SORTa
Mchl
Da się, aczkolwiek problem jest nietrywialny. Szukaj w Google 'MySQL ranking'
kabot
Witam,
  1. SET @row:=0;
  2. SELECT * FROM (
  3. SELECT @row:=@row+1 AS rank, * FROM nazwa ORDER BY jakasWartosc
  4. ) tab
  5. WHERE user = 'jakasNazwa'

Główny problem z tym jest taki, że where nie wykorzystuje indeksów. Zamiast gwiazdek proponowałbym wstawić konkretne nazwy kolumn.
pozdrawiam
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.