Losowanie rekordów w oparciu o współczyniki

Odpowiedz Nowy wątek
2013-09-29 13:56
abcdf
0

Witam, posiadam bazę o takiej budowie:

id wartość plusy minusy
Kolumna 1 Kolumna 2 Kolumna 3 Kolumna 4

Chce wylosować rekord(lub kilka rekordów). Jednak z uwzględnieniem tego, że elementy które procentowo mają dużo plusów losują się dużo częściej niż te które mają dużo minusów.

Ma ktoś jakiś pomysł jakich funkcji użyć? Jak takie zapytanie powinno wyglądać?

Pozostało 580 znaków

2013-09-29 20:49
0

Musisz je uszeregować korzystając z funkcji RAND() - losowa liczba z przedziału [0,1]. Na przykład:

select * from TABELA t ORDER BY RAND() * plusy DESC LIMIT 3;

Losuje 3 rekordy, gdzie największe prawdopodobieństwo mają te z największą liczbą plusów. W zależności, co dokładnie chcesz osiągnąć, możesz trochę inaczej losować, np.:

select * from TABELA t ORDER BY RAND() * (plusy - minusy) DESC LIMIT 3;

Tutaj największą szansę mają rekordy o największej przewadze plusów nad minusami. I tak dalej.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0