![]() |
![]() |
![]()
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:
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 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
To to samo, co:
Zero to od którego rekordu, 10 to ile rekordów http://dev.mysql.com/doc/refman/5.0/en/select.html Wyszukaj sobie słów limit, są tam ładne przykłady poniżej ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Heh, no to będzie dużo prościej niż myślałem
![]() Chodzi mi generalnie o to, żeby pobierać 10 wierszy z tabeli. Jeżeli odczytuję wiersze od początku tabeli, to sprawa jest prosta, np.: Pierwsza dziesiątka:
Druga dziesiątka:
A jeżeli chciałbym, żeby pobierał od końca tabeli? To znaczy jak pobrać np. ostatnią i przedostatnią dziesiątkę wierszy? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#5
|
|
![]() 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.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli np. aby otrzymać przedostatnie 10 wierszy poniższe zapytanie będzie prawidłowe?
Ten post edytował Demoneos 27.12.2011, 12:16:46 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A to nie prościej sprawdzić od razu zamiast pytać?
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:01 |