现在有个需求是从表中随机取出一条数据,除了全部拿出数据用程序来随机外,还可以使用数据库的 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; |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章