小技巧:mysql中使用rand()函数的参数实现多次读入随机条目并且无重复项

众所周知,很多语言中的rand()函数实现仅仅是通过一个复杂的数学公式计算出伪随机值,并将此值作为下一次rand()的种子。

所以,如果初始给它的种子是同一个,那么之后产生的随机数序列是必定相同的。

所以可以通过指定随机数种子实现多次读入随机条目并且无重复项。

具体实现:先给用户生成一个随机数种子,并通过这个随机数种子 select * from table order by rand(seed) limit start,count

然后客户每次ajax请求时,带上这个随机数种子与start位置,即可逐步读出所有内容。

*通过order by rand()方法有性能问题,数据量小就不管了(逃

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>