OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Re: Making ORDER BY RAND() more random [resend]

From: Michael Stassen (Michael.Stassenverizon.net)
Date: Mon Oct 03 2005 - 12:15:59 CDT


Graham Anderson wrote:
> is there a way to make ORDER BY RAND() a bit more spontaneous ?
>
> I am using it in a php statement:
> $sql = "SELECT media.id,
> artist.name as artist,
> artist.spanish as bio,
> artist.purchaseLink,
> artist.picture,
> media.spanish as trackName,
> media.path,
> media.quality,
> mediaType.id as mediaType
> FROM artist, media, playlistItems, mediaType
> WHERE playlistItems.playlist_id = $myID
> AND playlistItems.media_id = media.id
> AND media.artist_id = artist.id
> AND media.mediaType_id = mediaType.id
> ORDER BY RAND() LIMIT 0, 30";
>
> the result seems to be pretty predictable ....
> is there a way to improve RAND() or is there something better ?
> Should I be using php to randomize the found set instead ?
>
> many thanks
> g

I don't think anyone can answer this, as is. RAND() is meant to produce a
pseudo-random sequence that is not truly random in the mathematical sense,
but which is usually good enough for what you appear to be doing. The
manual <http://dev.mysql.com/doc/mysql/en/mathematical-functions.html> puts
it this way, "RAND() is not meant to be a perfect random generator, but
instead a fast way to generate ad hoc random numbers that is portable
between platforms for the same MySQL version."

What is your standard for randomness? What do you mean by "the result seems
to be pretty predictable"? Put another way, what are you expecting, and
what are you getting?

Michael

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql