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
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


FLOOR(Max(id)*RND()) zwrca ci jakś konkretną liczbę. I wybierasz id>= od tej liczby. Czasem nie ma ich 5

Jeśli chcesz pseudolosowo wybrać 5 rekordów bez rand, t spróbuj cegoś tkiego:
SELECT * FROM `table` WHERE promote = 1 ORDER BY crc32(concat(unix_timestamp(),id)) LIMIT 5
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: 15.10.2025 - 06:24