Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowy rekord
trueblue
post
Post #1





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Witajcie,
zna ktoś może inny sposób niż zopytmalizowany ORDER BY RAND() poprzez ID>=FLOOR(1+RAND()*MAX(ID)) ?
Chodzi o to, że metoda ma mankament przy nieciągłości ID.
Przykładowo:
ID
126 0
134 0,666666667
136 0,833333333
137 0,916666667
138 1
Jak z tego wynika pierwsze ID wpada w połowę dolnego przedziału.

Ostatecznie zastosowałem PHP, ale być może zna ktoś rozwiązanie na poziomie SQL.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Nom, przy malej liczbie rekordow miejsca 1 i 2 mogly tak sie klasowac. Przy wiekszej bylaby juz znaczaca roznica. No ale jesli faktycznie masz tam tylko 50 rekordow to nie ma co sie szczypac.
Go to the top of the page
+Quote Post

Posty w temacie
- trueblue   Losowy rekord   6.08.2014, 10:07:46
- - nospor   Najlepszy bylby limit, ale do tego musisz uzyc jes...   6.08.2014, 10:20:14
- - Crozin   Podstawowe pytanie: jakiej mniej-więcej wielkości ...   6.08.2014, 10:27:47
- - trueblue   Crozin, nie jest duża, ale ruch w serwisie jest ba...   6.08.2014, 10:30:30
- - patryczakowy   a co jest w $arr wszystkie rekordy z tabeli?   6.08.2014, 10:33:54
- - nospor   @trueblue ale w swoim rozwiązaniu musisz pobrac ws...   6.08.2014, 10:35:20
- - Pyton_000   A może po prostu coś takiego: [SQL] pobierz, plai...   6.08.2014, 10:45:49
- - trueblue   Cytat(nospor @ 6.08.2014, 11:35:20 ) ...   6.08.2014, 10:45:58
- - nospor   Pry 50 rekordach order by rand nie powinno mulic i...   6.08.2014, 10:55:30
- - Pyton_000   W tym że pobiera tylko jedną kolumnę ID, która jes...   6.08.2014, 11:00:54
- - Crozin   @trueblue: Jeżeli masz raptem 50 rekordów spośród ...   6.08.2014, 11:02:19
- - mmmmmmm   [SQL] pobierz, plaintext SELECT * FROM tabela ORDE...   6.08.2014, 11:06:40
- - nospor   @Pyton faktycznie masz racje. Pobranie jednej kolu...   6.08.2014, 11:10:40
- - trueblue   1. Moja metoda 2. Nospor ze znikomym opóźnieniem, ...   6.08.2014, 11:28:24
- - nospor   Nom, przy malej liczbie rekordow miejsca 1 i 2 mog...   6.08.2014, 11:32:52
- - Pyton_000   Jeżeli różnica rzędu 0.03 to taka wielka różnica ...   6.08.2014, 11:38:54
- - nospor   @Pyton przy 50 rekordach nie ma co oczekiwac, ze r...   6.08.2014, 11:41:38
- - trueblue   Dziękuję wszystkim za zaangażowanie i pomysły.   6.08.2014, 11:42:51
- - Pyton_000   Można jeszcze taką magią: [SQL] pobierz, plaintext...   6.08.2014, 11:58:59


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: 29.12.2025 - 22:27