thinkphp|php|mysql随机取10条数据

网上找了很多都不是很好用,而且不自由,都是同一个封装方法复制来复制去的

这里,我收集了几个方法还算自由

sql实现

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限制一下,可以高效地查出来。

php程序实现

实现原理就是先得到最大的id值,然后再随机生成5个随机id数组再通过

in查询即可

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐