2016-04-29 11:39:33 7264次浏览 4条回答 0 悬赏 30 金钱

我想随即查询出一条数据,每次走这个查询 结果都是不同的,怎么弄

  • 回答于 2016-04-29 11:44 举报

    findone(id),id取个随机数

    2 条回复
    回复于 2016-05-03 20:10 回复

    好吧! 666

    回复于 2016-05-04 13:26 回复

    @熊本污好吧666

    觉得很赞
  • 回答于 2016-04-29 16:04 举报

    rand(),id最好在数据里面 存在

  • 回答于 2016-04-29 16:38 举报

    查询出数据库id的最大值, 根据这个值产生一个随机数。 然后sql条件大于这个随机数

    觉得很赞
  • 回答于 2016-05-04 17:28 举报

    数据多性能有问题
    $sql='SELECT * FROM 数据库 ORDER BY RAND() LIMIT 1';
    可能少数据

    $sql='SELECT * FROM 数据库 WHERE id >= ((SELECT MAX(id) FROM 数据库)-(SELECT MIN(id) FROM 数据库)) * RAND() + (SELECT MIN(id) FROM 数据库)  LIMIT 1';
    
    return $this->findBySql($sql)->all();
    
您需要登录后才可以回答。登录 | 立即注册
辰枫夜雨
助理

辰枫夜雨

注册时间:2015-08-11
最后登录:2017-06-23
在线时长:18小时59分
  • 粉丝10
  • 金钱0
  • 威望0
  • 积分180

热门问题