Autor | Zpráva | ||
---|---|---|---|
timbulko Profil |
#1 · Zasláno: 16. 6. 2007, 08:44:34
Zdravím, mám tabuľku napríklad takto:
CREATE TABLE `abc` ( `hodnota` VARCHAR(20), `priorita` INT(3) ); povedzme, že je v nej napríklad 1000 riadkov a v stĺpci "priorita" je číslo od 1 do 100. Potreboval by som teraz vyselektovať z tejto tabuľky vždy jeden riadok náhodne, ale podľa priority. Čiže kým sa riadok s prioritou 1 zobrazí raz, riadok s prioritou 100 sa zatial priemerne zobrazí 100 krát. Mám takéto niečo vytvorené pomocou PHP, ale ja to potrebujem nejako zapojiť do mysql. Tu je ten príklad v php: <? function prand($min, $max, $procento) { $end_array = array(); $increment = 0; foreach ($procento as $key=>$value) $procento[$key] = round((($max-$min)/100)*$value); for ($a = $min; $a < $max; $a++) { foreach ($procento as $key=>$value) if ($key == $a) { for ($b = 0; $b < $value; $b++) $end_array[$increment++] = $a; } else $end_array[$increment++] = $a; } shuffle($end_array); return $end_array[rand(0, count($end_array)-1)]; } ?> použitie: prand(OD, DO, PRIORITY); echo prand(0, 10, array(4=>50, 7=>70, 5=>10)); atd... Vďaka. |
||
Kajman_ Profil * |
A nestačí
... order by rand()*priorita desc limit 1 ? |
||
timbulko Profil |
#3 · Zasláno: 16. 6. 2007, 14:16:29
jee ;-) to ma nenapadlo ;-) dik
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0