Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Pobranie 10 wierszy ze środka tabeli
Demoneos
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

Ostrzeżenie: (0%)
-----


Gdyby chodziło o pobranie 10 wierszy z początku lub końca tabeli, to oczywiście użyłbym limit 10. Natomiast gdy chcę pobrać gdzieś ze środka tabeli, to pierwszą rzeczą jaka mi przeszła na myśl, to wykorzystanie pola id:
  1. SELECT * FROM tabela WHERE id BETWEEN 50 AND 60

ale problem w tym, że gdy się usunie rekordy z tabeli, to id się nie przesuwa tylko pozostaje takie same, więc to opada.
Więc jak to zrobić?
1. Może zrobić jakieś dodatkowe pole "nr_kolejnego_wiersza" - przy wstawianiu nowego wiersza inkrementowałbym ilość dotychczasowych wierszy w tabeli i wpisał tą wartość do tego pola. Czy to dobry pomysł?
2. Drugim rozwiązaniem byłoby pokombinowanie w MySQL - najpierw wyświetlam np. od 50 wiersza do końca i z tego 10 pierwszych wierszy. Tylko jak do zaimplementować w MySQL?

Ten post edytował Demoneos 17.12.2011, 14:22:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ustawiasz ORDER BY z domyślnego kierunku na przeciwny. Domyślam się, że nie masz domyślnego sortowania, więc baza korzysta z klucza głównego rosnąco, czyli masz niejawne wywołanie ORDER BY id ASC... Zrób więc ORDER BY id DESC i teraz rób ten LIMIT jak Ci już napisano.
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 - 14:57