Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Wybieranie od konkretnego rekordu do końca zwróconych wyników
Forum PHP.pl > Forum > Bazy danych > MySQL
lorak110786
Mam proste zapytanie
  1. SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba='1037' ORDER BY oh_data DESC


Tym zapytaniem zwracanych jest powiedzmy 12 rekordów, są posegregowane malejąco. Chciałbym aby z tej dwunastki zwracane były tylko rekordy od szóstego do ostatniego. Zwracanie pierwszych pięciu jest łatwe (LIMIT 5), natomiast w drugą stronę jest problem. Wpadłem na pomysł żeby posegregować je rosnąco zamiast malejąco i zlimitować zliczając i odejmując od wyniku pożądaną wartość (np 5). Coś na zasadzie

  1. SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba='1037' ORDER BY oh_data ASC LIMIT (COUNT(*)-5)


Niestety, jak się łatwo domyślić, to nie działa. Czy jest jakiś sprytniejszy sposób?
thek
LIMIT może przyjąć 2 parametry. Ty używasz wersji LIMIT X, ale jest jeszcze LIMIT X, Y. Zobacz co ona powoduje i pomyśl jak to wykorzystać winksmiley.jpg

Zacytuję tylko dokumentację do MySQL w takim wypadku i myślę że skorzystasz...

Cytat
To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter. This statement retrieves all rows from the 96th row to the last:

SELECT * FROM tbl LIMIT 95,18446744073709551615;


EDIT: Jeśli nie wierzysz to sobie znajdź to tutaj,bo na sztywno przekleiłem:
http://dev.mysql.com/doc/refman/5.0/en/select.html
lorak110786
Dokładnie o to mi chodziło:) Że też nie wpadłem na to żeby przyjrzeć się opcji LIMIT uważniej... Dzięki:)
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-2024 Invision Power Services, Inc.