随机数算法,SQL

sql 复制代码
SELECT
    * 
FROM
    prizes_config 
WHERE
    weight > ( SELECT FLOOR( RAND() * MAX( weight )) FROM prizes_config ) 
    order by weight asc
    
    
--    LIMIT 1;

记录

id 权重

1 5

2 10

3 50

4 100

找权重最大的那个值,调用rand()函数,它会随机生成一个0-1的值

然后 rand * 100 得出一个随机值

它的范围 0 <= 随机值 < 100

例如本次随机值为2,那么找到 大于2的所有记录,然后升序

此时查询结果为

2 10

3 50

4 100

最后LIMIT 1 返回第一条

相关推荐
wang6021252182 分钟前
FastAPI框架为什么在启动时建表
数据库
男孩李4 分钟前
linux下如何执行postgres数据库的sql文件
数据库·sql·postgresql
zwjapple8 分钟前
MySQL SQL 面试核心考点与注意事项总结
数据库·sql·mysql
乐韵天城9 分钟前
SpringBoot中如何手动开启数据库事务
数据库·spring boot
05大叔14 分钟前
Spring Day02
数据库·sql·spring
默默前行的虫虫21 分钟前
nicegui中多次调用数据库操作总结
数据库·python
鸽鸽程序猿27 分钟前
【Redis】事务
数据库·redis·缓存
Knight_AL1 小时前
MySQL 分区表应用案例:优化数据管理与性能
数据库·mysql
老华带你飞1 小时前
考试管理系统|基于java+ vue考试管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
九皇叔叔1 小时前
MySQL 数据库 MVCC 与锁如何联手解决脏读、不可重复读、幻读
数据库·mysql