sql语句如何随机取一条数据
Posted mr.杰瑞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句如何随机取一条数据相关的知识,希望对你有一定的参考价值。
rand()
最近项目中需要从所有数据中随机取一条数据 进行展示。
从网站找了找可以使用rand()函数
例子: SELECT * FROM activity_code ORDER BY rand() LIMIT 1;
执行结果用时如图
explain 结果 看到type 是 all
这个类型真的是可怕,它是全表扫描,举个例子,数据表相当于一个班,我们要找小明同学。然后程序开始一个一个找,当发现小明后,程序并没有停下来,知道把所有同学都找一遍后,我们才确认这个是小明。
对于这样的查询当然希望优化一下
参考这篇文章 https://www.jb51.net/article/52502.htm
SELECT * FROM activity_code t1 JOIN (SELECT RAND() * (SELECT MAX(id) FROM activation_code) AS nid) t2 ON t1.id > t2.nid LIMIT 1
运行结果
最好把RAND()生成随机数放在JOIN子查询中以提高效率
以上是关于sql语句如何随机取一条数据的主要内容,如果未能解决你的问题,请参考以下文章