mysql如何随机抽取一定数量的记录 mysql随机抽取一定数量的记录实例

作者:袖梨 2019-09-11

本篇文章小编给大家分享一下mysql随机抽取一定数量的记录实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

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可以放在程序里来计算。

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

相关文章

精彩推荐