现在有个需求是从表中随机取出一条数据,除了全部拿出数据用程序来随机外,还可以使用数据库的 RAND()
函数。
RAND()
函数可以返回一个 0~1
的随机数
1 | > select RAND(); |
RAND()
还可以给一个数字参数,以该数字作为基准来生成一个可重复的随机数。
1 | > select RAND(5); |
官方定义的该参数的取值范围是 0~1
,但实测超过该范围也可以得到结果。
如果想要得到一个随机的整数,则可以运用数学运算和 FLOOR()
函数,比如想要一个 [10,20]
区间的随机数
1 | > select FLOOR(10 + (RAND() * 11)); |
最后回来点一下题,如何获取表中的随机数据?
这里需要配合排序语句 ORDER BY RAND()
来使用,可以获取一个按照随机排序的列表。
1 | > SELECT * FROM USER ORDER BY RAND(); |
最后再配合 LIMIT
来获取随机的一条数据
1 | > SELECT * FROM USER ORDER BY RAND() LIMIT 1; |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章