Hi Benjamin, The perfect answer.
Thank you, Anvar. At 08:44 AM 16/02/2002 +0100, you wrote: >Hi. > >On Fri, Feb 15, 2002 at 09:05:02PM -0800, [EMAIL PROTECTED] wrote: > > In Re: Selecting records with the highest value no greater than x, > <[EMAIL PROTECTED]> wrote: > > > > > >Hi Brent, > > > > > >I cannot think of a single query doing your job. > >IMO, there is one, if I did understand the question correctly: > >SELECT * FROM NEWS WHERE RATING <= 4 ORDER BY RATING DESC, RAND() LIMIT 1; > >This give back a random news entry of the highest score available, but >smaller than 5. > > > >But it can be done with two. > > > > > >SELECT @maxrating := MAX(RATING) FROM NEWS WHERE RATING <= 4; > > >SELECT * FROM NEWS WHERE RATING=@maxrating ORDER BY RAND() LIMIT 1; >[...] > > Nice, assuming that the " @maxrating " is the syntax for a local > > variable within the server. Where is that discussed in the manual? > >They can be found under the term "user variables": >http://www.mysql.com/doc/V/a/Variables.html > > > Some simple use of an API is the probably the best answer, it's > > probably ~ 25 lines of perl. >[...] > >Depends on the needs. A pure SQL solution should be noticeably faster. > >Bye, > > Benjamin. > >-- >[EMAIL PROTECTED] --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php