You are here: Re: Choosing a random entry in a table by "weight" « PHP Programming Language « IT news, forums, messages
Re: Choosing a random entry in a table by "weight"

Posted by Rami Elomaa on 05/27/07 18:39

alpha.beta0@googlemail.com kirjoitti:
> I have a MySQL table of servers, I use RAND() to pick a random server
> to use each time, but how can I add a number to each server entry that
> allows it be to picked more often than the other 20 servers?
>
> For example Server1's weight is 80 and Server2's weight is 40 and
> hence Server1 is more likely to be picked than the others.
>

In theory like this: pick a random weight and take into group all the
items that weigh more, it's more likely that heavier items are taken
into the group, than the lighter. From the group you have created, pick
one randomly. If no items were in the group, your random weight was too
big, so you might limit it to < maxweight, so that always at least one
item is picked.

Transforming this into a query is another thing. This is very rough
example but you'll get the idea, I suppose:

SELECT * FROM ( SELECT * FROM servers WHERE weight > RAND() ) ORDER BY
RAND() LIMIT 1,1

--
Rami.Elomaa@gmail.com

"Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan
usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация