Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6204089
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T05:01:50+00:00 2026-05-24T05:01:50+00:00

I would like to select a random record from a table but with a

  • 0

I would like to select a random record from a table but with a bias toward higher values in a particular field — I don’t want any record to have a 0% chance of getting selected, just less likely to get selected.

From this article, I know that random selects can be slow and you can speed them up:
http://wanderr.com/jay/order-by-slow/2008/01/30/

But what about when you are dealing with a few tables with joins and a where statement, and want to use one of the fields as a way to bias the randomness (the higher this field’s value, the more likely to get selected)? For example:

SELECT a.id, a.date, a.userid, b.points FROM table_a AS a INNER JOIN table_b AS b ON (a.userid = b.userid) WHERE DATE_SUB(CURDATE(), INTERVAL 60 DAY) <= a.date

How could I turn the above into an efficient but not truly random query that would be biased toward higher values of b.points?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T05:01:51+00:00Added an answer on May 24, 2026 at 5:01 am

    my 2 cents, biased can be carried out like this:

    Assuming the Score is between 0, 100.

    You randomly choose 5 records that is >75, 3 recording >50, 2 record >25, 1 record >0

    Now if you random again from this 11 records, it is biased toward higher score.

    To put them in sql, called your joined table “abc”

    Select * from (
    select * from abc where b.points > 75 order by rand() limit 5
    cross join 
    select * from abc where b.points > 50 and b.points <75 order by rand() limit 3
    cross join 
    select * from abc where b.points > 25 and b.points <50 order by rand() limit 2
    cross join 
    select * from abc where b.points > 0 and b.points <25 order by rand() limit 1
    ) as result
    order by rand() limit 3
    

    Performance wise, I’ll have a look at your link and update this anwser.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to run something like: select * from table where field in
I want to show a random record from the database. I would like to
I would like to select all descendant but blog nodes. For the example, only
I would like to select a row from 2 different tables that are relational.
I would like to select all elements that have certain attribute or don't have
I've been using this little snippet to select random images. However I would like
I have a static table with 20+ records, I would like to select N
I have an enum that I would like to randomly select a value from,
For internal control we would like to select a single random invoice for each
I would like to select a set of elements that are both of a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.