Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsGeneralPHPASPPerlColdFusionFlashHTML, CSS, ScriptsBrowsers

Webmaster Forum / ASP / Database Access / October 2008



Tip: Looking for answers? Try searching our database.

How to efficiently get a random set of records from a DB

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Laphan - 21 Sep 2008 11:48 GMT
Hi All

I use a MySQL DB with my ASP classic web app.

I've been asked if I can create a routine whereby I get a random number of
products (records) from the DB and display these on the site.  Basically
every time a visitor hits the home page, they want the site to display a
random selection of say 6 products.

I have no problems getting the data and displaying it, my problem is
grabbing 6 random records efficiently.

My initial thought was bring back all of the records to a local array (like
I normally do) and then pick 6 random records in VBscript, but if a DB has
12,000 products this is a silly server hit to bring them all back just to
display 6 out of the 12,000.

The products table doesn't have an auto-number field, the unique-ness is
managed by the product's own unique stock code, but this isn't a sequential
number - its alphanum.

Any ideas on how I can get 6 randoms from the DB rather than bringing all
locally?

Thanks
Bob Barrows [MVP] - 21 Sep 2008 12:04 GMT
> Hi All
>
[quoted text clipped - 4 lines]
> site.  Basically every time a visitor hits the home page, they want
> the site to display a random selection of say 6 products.

I have nothing to add to this:
http://www.aspfaq.com/show.asp?id=2132
... especially since I'm not familiar with the SQL dialect used by MySQL

Signature

Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Captain Paralytic - 22 Sep 2008 12:59 GMT
> Hi All
>
[quoted text clipped - 21 lines]
>
> Thanks

Ask this over on comp.databases.mysql.
Even  better, just search its archives, you will find the answer to
this question, there.
Ted Dawson - 25 Sep 2008 03:04 GMT
> Hi All
>
[quoted text clipped - 23 lines]
>
> Thanks
KEN - 03 Oct 2008 21:51 GMT
This works for me MySQL ASP

SQLString = "SELECT * FROM table ORDER BY RAND() LIMIT 10;"

Set rs_products= Server.CreateObject("ADODB.Recordset")
rs_products.Open SQLString,dbConnED,adLockReadOnly,adOpenDynamic

Gets 10 random products from the table - cheers

> Hi All
>
[quoted text clipped - 21 lines]
>
> Thanks
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.