Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyciagniecie ostatnich wierszy z wyniku zapytania
sobstel
post
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
  1. SELECT *
  2. FROM posts
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





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
  1. SELECT ... LIMIT t.ilosc_rekordow - 1000, t.ilosc_rekordow

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
  1. SELECT *
  2. FROM tab ORDER BY id ASC/DESC

wiec kierunek nie ma znaczenia, a array_reverse() jest prosta funkcja/szybka - O( n ).

*) Jedynie gdy nie wykonujesz zadnego sortowania
  1. SELECT *
  2. FROM tab

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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 15:17