三种方案:
1.通过by rand()的方式,最low的方式,不过对于小数据量了完全可以,简单方便
2.通过sql语句实现SELECT * FROM opus WHERE player_id >= ((SELECT MAX(player_id) FROM opus)-(SELECT MIN(player_id) FROM opus)) * RAND() + (SELECT MIN(player_id) FROM opus) LIMIT 200
但是根据执行计划来看,效率还是不怎么好,如果表中有索引字段,则将会放弃使用索引来执行查询;
3.SELECT t.opus_id FROM opus t where t.opus_id >=[start] and t.opus_id<=[start + 1000] limit 200;
start则是通过代码来生成的随机数。通过观察执行计划,效率是最高的!