随机数算法,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 返回第一条

相关推荐
8Qi83 分钟前
Redis哨兵模式(Sentinel)深度解析
java·数据库·redis·分布式·缓存·sentinel
数据库小组6 分钟前
从业务库到实时分析库,NineData 构建 MySQL 到 SelectDB 同步链路
数据库·mysql·数据库管理工具·数据同步·ninedata·数据库迁移·selectdb
CDN36012 分钟前
CDN HTTPS 证书配置失败?SSL 部署与域名绑定常见问题
数据库·https·ssl
Chengbei1119 分钟前
一次比较简单的360加固APP脱壳渗透
网络·数据库·web安全·网络安全·系统安全·网络攻击模型·安全架构
寒秋花开曾相惜20 分钟前
(学习笔记)3.9 异质的数据结构(3.9.1 结构)
c语言·网络·数据结构·数据库·笔记·学习
mcooiedo30 分钟前
mybatisPlus打印sql配置
数据库·sql
wudl556636 分钟前
MySQL 8.0.42 Docker 开发部署手册
数据库·mysql·docker
xhuiting40 分钟前
MySQL专题总结(四)—— 高可用
java·数据库·mysql
kjmkq1 小时前
目工业级宽温SSD哪个品牌不掉盘最稳定?宽温环境下的稳定性性技术解析
数据库·存储
Predestination王瀞潞1 小时前
Java EE3-我独自整合(第二章:Spring IoC 入门案例)
数据库·spring·java-ee