![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego przy takim kodzie gdy wywołuje w adresie sortowanie sortuje całą tabelę ze wszystkimi w niej wpisami, a nie tylko to co wczytało? Wpisów w niej jest prawie czterysta. Kiedy sortuje do malejąco, to jako pierwsza pozycja wskakuje ostatni z tych prawie czterystu, a nie ostatni z wczytanych pięciu. Jak to zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ tak działa SQL - najpierw występuje sortowanie (ORDER BY), potem dopiero ograniczenie zbioru wyników (LIMIT). I jest to jedyne sensowne rozwiązanie, bo o ile jawnie nie określisz sortowania rekordów, dane zwracane są w kolejności losowej*. To skutkuje tym, że dokładnie to samo zapytanie (bez sortowania) może zwrócić zupełne różne wyniki za każdym razem.
1. Upewnij się jedynie, że masz indeks założony na kolumny data_zgloszenia i godzina_zgloszenia (notabene, to powinna być raczej jedna kolumna) i zostaw zapytanie tak jak je masz. 2. To o co pytasz mógłbyś wymusić podzapytaniem:
3. Podaj więcej szczegółów, jeżeli powyższe dwa są nieodpowiednie. * tak na dobrą sprawę trzeba przyjąć - różne bazy przy różnych zapytaniach przy różnej ilości danych będą zachowywać się inaczej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:42 |