Giluś
6.02.2013, 18:19:38
Cześć, troszkę dziwny tytuł, ale moim zdaniem jest to chyba proste ale nie wiem jak to zrobić..
Mam bazę danych o nazwie Rajdy w tym są takie kategorię:
id|rajd_id|nazwa|czas|flaga
1|1|dd|11|1
2|1|cc|22|1
3|2|ds|32|2
4|1|cc|22|1
5|2|ds|32|2
I teraz chce wyświetlić 5 ostatnich wyników o Największym rajd_id którego ja nie znam w tym przypadku jest to "2", ale w innym może być 10, 30, 21, 99, 999 itp.. nigdy nie wiem jaki jest ten największy rajd_id a jak sortuję według rajd_id DESC to i tak pokazują się rajd_id np.: 1.. a wiec jak to zrobić ?..
Pozdrawiam i z góry bardzo dziękuje.
Damonsson
6.02.2013, 18:28:29
Pierwsze co przychodzi do głowy to 2 zapytania, w 1. wybierasz największy rajd_id, w 2. podstawiasz to w WHERE. Ale na 99,999% można to zrobić w jednym zapytaniu i będzie to optymalniejsze, w razie jakby nikt nie pomógł, możesz zastosować ten sposób.
Giluś
6.02.2013, 18:29:48
Właśnie taki sposób to znam, ale szukam czegoś bardziej optymalnego

..
Dzięki za odpowiedz.
mar1aczi
6.02.2013, 18:38:05
Użyj sortowania i funkcji LIMIT w zapytaniu.
Damonsson
6.02.2013, 18:38:20
SELECT * FROM `firstname` WHERE `ratio`=(SELECT max(`ratio`) FROM firstname) LIMIT 5;
Sprawdzone, działa szybciutko na kilku tysiącach rekordów.