主页 > 知识库 > mysql随机抽取一定数量的记录实例讲解

mysql随机抽取一定数量的记录实例讲解

热门标签:福建外呼系统定制化 怎么在地图标注位置生成图片 美国反骚扰电话机器人 腾讯地图标注提升 真人语音电话机器人 铜陵防封电销卡 400电话可以免费申请吗 电销卡外呼系统供应商 悟空科技电话机器人

以前碰见这种使用场景都是直接order by rand()来处理的,但是效率实在是不敢恭维,所以最近又碰见这种场景,在网上找寻下比较好的解决办法.

1.order by rand()

写法:

SELECT
  id
FROM
  `table`
ORDER BY
  rand()

这种写法的缺点是rand函数在order by中被执行多次,影响效率。

2.max(id) * rand() 使用join

写法:

SELECT
  *
FROM
  `table` AS t1
JOIN (
  SELECT
    ROUND(
      RAND() * (
        (SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`)
      ) + (SELECT MIN(id) FROM `table`)
    ) AS id
) AS t2
WHERE
  t1.id >= t2.id
ORDER BY
  t1.id
LIMIT 1;

网上的大佬们都推荐第二种写法,特此记录下,感觉最大id和最小id可以放在程序里来计算。

这里有个问题是如果取多条 那么一定是连续的,所以如果是不想取连续数据,得循环,不过此语句效率极高,所以循环查询是可以做的。

以上就是全部相关知识点内容,有需要的朋友们可以学习下,感谢大家对脚本之家的支持。

标签:乌海 湖南 临汾 湖北 白银 聊城 云浮 武威

巨人网络通讯声明:本文标题《mysql随机抽取一定数量的记录实例讲解》,本文关键词  mysql,随机,抽取,一定,数量,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《mysql随机抽取一定数量的记录实例讲解》相关的同类信息!
  • 本页收集关于mysql随机抽取一定数量的记录实例讲解的相关信息资讯供网民参考!
  • 推荐文章