![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 5.11.2006 Skąd: Poznań Ostrzeżenie: (0%)
|
Mam takie pytanie...
W MySQL jest możliwość zrobienia zapytania SELECT i dodania do niej klauzuli LIMIT. Pozwala to na pobranie jakiejś listy danych, a następnie wyświetlenie jedynie tylu wyników ile jest żadana (dzięki LIMIT). Natomiast w MSSQL istnieje tylko klauzula TOP, która pokazuje odpowiednią ilość wyników, ale tylko z samej góry (nie ma możliwości pobrania np. środkowych danych). Jest mi to potrzebne do stworzenia stronicowania w php. W MySQL zapytanie można zrobić np. tak: SELECT * FROM tabela WHERE tabela.pole=wartość LIMIT 100,20 Daje to taki wynik, że najpierw jest pobrany cały SELECT, a następnie wyświetlony tylko zbiór 20 wyników dopiero od 100 wiersza - czyli wyświetlane są wiersze od 100 do 120. Więc czy istnieje taka możliwość MSSQL? Oprócz korzystania z funkcji php mssql_data_seek(); ? Udało mi się oczywiście stworzyć stronicowanie, ale potrzeba do tego ok. 5-6 zmiennych i dosyć mocna kombinacja... Może istnieje jakaś łatwiejsza metoda na pobranie wyników nie od początku, ale od środka? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 16.12.2003 Skąd: Tychy Ostrzeżenie: (0%)
|
-------------------- |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 5.11.2006 Skąd: Poznań Ostrzeżenie: (0%)
|
He he:) Dobre:)
Dzięki! |
|
|
|
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%)
|
obowlewam nad tym że microsoft nie udostępnił odpowiednika dla LIMIT w MySql Ten post edytował jastu 14.12.2006, 14:27:33 -------------------- Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 5.11.2006 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat
Trzeba jeszcze dodać po drugim select z jakiej tabeli należy pobrac dane. A tak w ogóle to skrypcik działa:) Czyli:
|
|
|
|
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%)
|
Działa , tylko wyświetla w odwrotnej kolejności
-------------------- Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 5.11.2006 Skąd: Poznań Ostrzeżenie: (0%)
|
Pozamieniaj sortownie.
Tylko nadal jest problem, bo ten TOP 120 musi iść od drugiej strony... Więc aby pobrać drugie 20 wierszy SQL musi najpierw pobrać prawie wszystkie wiersze, a następnie zwrócić tylko 20 ostatnich... Co jak pisałeś - jest irytujące... Ja zrobiłem inny trochę mechanizm... Ale jest baaardzo zakręcony.. Jest tam 5 dodatkowych zmiennych i korzystam z mssql_data_seek... Tylko, że każde wyświetlenie jakiejś ilości danych na stronie wymaga najpierw pobrania całego zbioru wyników!! a potem zwrócenia jakiejś ilości.. Więc wolę się jednak pobawić powyższym zapytaniem.. Przynajmniej część stron z wynikiami nie będzie pobierała całego zbioru wyników.... Ten post edytował ghash 20.12.2006, 09:13:08 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 03:28 |