![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
PROBLEM
wyciągnięcie ostatnich X wierszy z wyniku zapytania (cos jak limit ale dla ostatnich, a nie pierwszych wierszy) przykladowo zwraca 1000 wierszy, a ja chcialbym tak skonstruowane zapytanie, ktory zwrociloby np. 50 ostatnich wierszy z tego co zwraca w/w zapytanie... ROZWIĄZANIE 1. mozna uzyc DESC a potem po stronie php posortowac z powrotem we wlasciwej kolejnosci, ale to dla mnie kombinowanie, nie licząc narzutu... 2. mozna zrobic najpierw SELECT COUNT(*) a potem 2-gie wlasciwie zapytanie podstawiajac w LIMIT otrzymany COUNT(*) minus ilość wierszy do wyciągnięcia. ale to ciagle 2 zapytania. bylbym rad gdyby dalo sie to jakos zrobic w jednym zapytaniu. ma ktos jakies pomysly? Ten post edytował sopel 1.12.2005, 19:58:49 -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mike_mech @ 2005-12-01 20:40:33)
A potem array_reverse(). Co w tym złego :?: powiedzmy, ze chce wyciagnac ostatnich 1000 wierszy. najpierw sortowanie po stronie SQL a potem array_reverse jest stosunkowo kosztowne - zdecydowanei zalatwienie tego jednym zapytaniem byloby o niebo wydajniesz - pytanie czy sie da? -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
No pewnie ze wydajniejsze - znajdz takie.
Mozna by przechowywac ilosc rekordow w innym rekordzie i potem
ale nie wiem czy SQL to przyjmie ---- Cytat (...)A potem array_reverse(). Co w tym złego :?: Cytat powiedzmy, ze chce wyciagnac ostatnich 1000 wierszy. najpierw sortowanie po stronie SQL a potem array_reverse jest stosunkowo kosztowne Co do sortowania: i tak zawsze* sortujesz
wiec kierunek nie ma znaczenia, a array_reverse() jest prosta funkcja/szybka - O( n ). *) Jedynie gdy nie wykonujesz zadnego sortowania
stracisz na tej metodzie -- ale kiedy uzyjesz tego SQLa??, kolejnosc dodawania rekordow nie musi byc odzwierciedlana przez ich kolejnosci przy takim zapytaniu. Ten post edytował dr_bonzo 1.12.2005, 20:52:28 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:31 |