lzrqyc110
- lzrqyc110 2016-09-30 已签到连续签到5天,获得了20个金钱
- lzrqyc110 2016-09-29 已签到连续签到4天,获得了20个金钱
1) 采用官方的方式
select * from tb_name order by rand() limit N
2)采用类似偏移方式
select * from tb_name where id >= (select floor(max(id) * rand()) from tb_name ) order by id asc limit N;
3)优化的方式
select * from tb_name as r1 join (select round(rand() * (select max(id) from tb_name)) as id2) as r2 where r1.id >= r2.id2 order by r1.id asc limit N;
那请问怎么以model查询生成器的方式完成上面sql语句的效果呢?比如
$this->find()->offset(0)->limit(10)->asArray()->all();
这种方式
- lzrqyc110 2016-09-28 已签到连续签到3天,获得了15个金钱
- lzrqyc110 2016-09-27 已签到连续签到2天,获得了10个金钱
- lzrqyc110 2016-09-26 已签到连续签到1天,获得了5个金钱
- lzrqyc110 2016-09-24 已签到连续签到1天,获得了5个金钱
- lzrqyc110 2016-09-22 已签到连续签到2天,获得了10个金钱
- lzrqyc110 2016-09-21 已签到连续签到1天,获得了5个金钱