Losowanie rekordów w oparciu o współczyniki

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ć?

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.

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