mysql随机取出n条数据
17-09-12 16:25
字数 389
阅读 3520
现在有个需求要随机从一种百万记录的表中取出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时间了。