mysql随机取出n条数据
                                                                
                17-09-12 16:25
                字数 389
                阅读 4025
                                            
            现在有个需求要随机从一种百万记录的表中取出15条数据
最简单的做法是order by rand() limit 15,但是这样的效率不是很高。所以找到了下边的这个方法  
$ids = array();
$sql = "select id from tableName WHERE addDate = '{$date}' AND status = '1'";
$res = $db->select($sql);
if (!empty($res)) {
    foreach ($res as $row) {
        array_push($ids, $row['id']);
    }
    shuffle($ids);
    $ids = array_slice($ids, 0, 15);
}
$ids = rtrim(implode(",", $ids), ",");
$sql = "select * from tableName WHERE id in ({$ids})";
$res = $db->select($sql);0人点赞>
                    请登录后发表评论
        
        相关推荐
        
    文章归档
    
最新文章
        最受欢迎
    22-11-16 10:13
                    21-10-18 12:11
                    21-10-17 23:27
                    20-08-18 17:58
                    20-01-06 12:12
                     
         
                     
     
    
那有没有考虑过第一条sql语句所使用的时间。2条sql语句使用的时间,可能就大于order by rand() limit 15时间了。