Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OPTYMALNE wybieranie losowych rekordów z bazy danych
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Zastanawiam się jaki jest najoptymalniejszy sposób na wybranie 5 losowych rekordów z bazy danych? Do tej pory raczej bezmyślnie korzystałem z rand() w zapytaniu, ale ta opcja ma bardzo negatywne opinie w sieci, dlatego też zastanawiam się w jaki sposób to zrobić inaczej, a przy tym najbardziej optymalnie jak tylko się da?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Cóż, używam czegoś takiego:

  1. SELECT * FROM `table` WHERE promote = 1 AND id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` WHERE promote = 1 ) ORDER BY id LIMIT 5;


ale coś jest nie tak... Mam w bazie 7 rekordów, pasujących do tego zapytania, a wymagam tylko 5 losowych. To zapytanie w rezultacie raz daje mi 3 wyniki, raz 4, raz 5, a raz jedno... Co jest nie tak ?
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: 17.10.2025 - 13:59