Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam,

Mam pewien problem z banalnym zapytaniem. Calosc wyglada tak:

SELECT * FROM psy ORDER BY rand() LIMIT 1;

Niestety dla wyswietlenia tego jednego rekordu pobiera mi wszystkie wiersze z bazy danych. Czy da sie cos zrobic alby ograniczyc ilosc pobieranych wierszy? Nie bez znaczenia jest tych 1000 niepotrzebnych wierszy....
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli chcesz wyciągnąć losowy wiersz, to niestety musisz przelecieć całą tabelę. Można to rozwiązać w nieco inny sposób. Jeśli używasz php, możesz dokonać losowania w skrypcie (musisz jednak wiedzieć jakie id występują w tabeli), a następnie wyciągnąć jeden wiersz (dla wylosowanego wcześniej id). W samym MySQL nie da się tego zrobić (przynajmniej tak mi się wydaje).
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: 11.10.2025 - 00:15