网上找了很多都不是很好用,而且不自由,都是同一个封装方法复制来复制去的
这里,我收集了几个方法还算自由
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
直接用order by rand()肯定是性能不高
这种要很好多
select * from articles where id>=(select floor(rand() * (select max(id) from articles))) order by id limit 10
说明:
rand函数返回0,1的随机数,然后再乘上表中的最大id,再向下取整,最后用id大于或等于这个数再order by排序,再用limit限制一下,可以高效地查出来。
实现原理就是先得到最大的id值,然后再随机生成5个随机id数组再通过
in查询即可