lzrqyc110

lzrqyc110

这家伙有点懒,还没写个性签名!

  • 财富值4195
  • 威望值40
  • 总积分4885

个人信息

  • 2016-09-30 已签到
    连续签到5天,获得了20个金钱
  • 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();
    

    这种方式

  • 2016-09-28 已签到
    连续签到3天,获得了15个金钱
  • 提出了问题
    mysql查询怎么随机获取数据?
  • 2016-09-27 已签到
    连续签到2天,获得了10个金钱
  • 2016-09-26 已签到
    连续签到1天,获得了5个金钱
  • 2016-09-24 已签到
    连续签到1天,获得了5个金钱
  • 2016-09-22 已签到
    连续签到2天,获得了10个金钱
  • 2016-09-21 已签到
    连续签到1天,获得了5个金钱
总监 等级规则
4885/5000
资料完整度
20/100
用户活跃度
10/100

Ta的关注

1

Ta的粉丝

37

Ta的访客

42