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查询即可

上一篇:PHP:ThinkPHP使用PHPMailer发送html邮件


下一篇:GBase 8s中RPAD函数的用法