>-----Original Message----- >From: Brent Baisley [mailto:[EMAIL PROTECTED] >Sent: Saturday, December 06, 2008 11:35 AM >To: sangprabv >Cc: mos; mysql@lists.mysql.com >Subject: Re: Randomize by Score and DESC > >That's because RAND() is a decimal (0.37689672). Try score*RAND(). > [JS] That in itself shouldn't matter. A random number is a random number, regardless of the scale. ORDER BY RAND() is equivalent to ORDER BY myweight*RAND().
As for ordering by score*RAND(), if score comes up 12 and RAND() comes up .1, you will have a product equal to 1.2; if score comes up as 10 and RAND() comes up .2, then you'll have a product equal to 2.0. That is not going to give you what you want. I'm pretty sure what you need to do is come up with a random sample first, and then order the result. SELECT score FROM (SELECT score FROM table WHERE RAND() < .1) ORDER BY score DESC; That should give you a random sample of approximately 10% of your original table, in descending order by score. Regards, Jerry Schwartz The Infoshop by Global Information Incorporated 195 Farmington Ave. Farmington, CT 06032 860.674.8796 / FAX: 860.674.8341 www.the-infoshop.com www.giiexpress.com www.etudes-marche.com >Brent Baisley > >On Nov 30, 2008, at 2:03 AM, sangprabv wrote: > >> Hi, >> Thans for the reply, I have tried it but I don't see the RAND() to be >> work. This list is always the same. TIA >> >> >> Willy >> >> >> -----Original Message----- >> From: mos <[EMAIL PROTECTED]> >> To: sangprabv <[EMAIL PROTECTED]>, mysql@lists.mysql.com >> Subject: Re: Randomize by Score and DESC >> Date: Sat, 29 Nov 2008 13:05:09 -0600 >> Mailer: QUALCOMM Windows Eudora Version 6.0.0.22 >> >> At 09:15 AM 11/29/2008, sangprabv wrote: >>> Hi, >>> I have a query like this "SELECT * FROM table ORDER BY score DESC, >>> RAND()" The aim is to randomize the result by score with descending >>> order. But it doesn't work. What missed here? TIA. >>> >>> >>> Willy >> >> >> Willy, >> That is because you are ordering by Score then Rand. If Score >> is an >> integer, try >> >>> SELECT * FROM table ORDER BY score+RAND() DESC >> >> >> This will randomize the higher scores first, followed by the lower >> scores etc.. >> >> >> >> Mike >> >> >> >> -- >> MySQL General Mailing List >> For list archives: http://lists.mysql.com/mysql >> To unsubscribe: >http://lists.mysql.com/[EMAIL PROTECTED] >> > > >-- >MySQL General Mailing List >For list archives: http://lists.mysql.com/mysql >To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] >infoshop.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]