Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Jak pobrać z bazy rekordy z przedziału, ale od końca ?
Forum PHP.pl > Forum > Przedszkole
maniek99
Pobieram z bazy 20 rekordów począwszy od 20 w taki sposób:
  1. SELECT id,nazwa FROM `tn` WHERE 1 LIMIT 20,20

Teraz chciałbym zrobić analogicznie, ale od końca, czyli pobrać 20 wierszy od końća, ale pomijając ostatnie 20.
Można to zrobić bezpośrednio z poziomu sql, czy trzeba w php kombinować z pobieraniem ogólnej liczby rekordów i ustalaniem konkretnych przedziałów ?
matiit
Po prostu zmień kolejność ORDER'em
maniek99
Próbowałem wcześniej z ORDER BY ID DESC i nie za bardzo...
Crozin
Dokumentacja MySQL nie wspomina nic o możliwości nadania ujemnego OFFSETu, więc domyślam się, że nie ma innej możliwości jak zliczyć łączną ilość rekordów i odjąć od niej daną wartość. Jednak prawdopodobnie będziesz mógł osiągnąć ten sam efekt wykorzystując sortowanie o przeciwnym zwrocie, tj. DESC zamiast ASC bądź ASC zamiast DESC.
maniek99
Niestety
  1. SELECT id,nazwa FROM `tn` WHERE 1 LIMIT 20,20 ORDER BY ID DESC

nie działa, więc pozostaje mi liczenie...
matiit
  1. SELECT id,nazwa FROM `tn` WHERE 1 ORDER BY `id` DESC LIMIT 20,20
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.