一、背景 自己因为有一个答题插件逻辑,需要从数据库随机选择一定数目的题目,这个业务已经被同事实现,但我觉得他实现不对或者不够好,于是思考这个问题。他用rand() 产生一个随机数,然后大于这个随机数 加上limit 得到 题库。 二、问题 题库是连续的,用户体验不好 随机概率增大,如果用这个思路写抽奖那么绝对是不对的。 三、解决思路 假设我们选择uid 用户的ID 是整数,主键。。 select * from xxx where uid >= (rand(max(uid) - min(uid) ) + min(ui…