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

相关推荐
Donk_6713 小时前
iSCSI 服务器
运维·服务器·数据库
打码人的日常分享13 小时前
大模型及智能体安全风险防范与治理策略(PPT)
运维·网络·数据库·安全·云计算·制造
hughnz13 小时前
钻井“自动化”的终点就是钻井自主化的起点
运维·数据库·python
CHANG_THE_WORLD13 小时前
PE 文件 数据目录
linux·服务器·数据库
CLX050514 小时前
CSS如何制作响应式图片集布局_利用object-fit填充空间
jvm·数据库·python
Full Stack Developme14 小时前
SQL发展历史
数据库·sql
2303_8212873814 小时前
SQL如何进行分组后字符串拼接_使用GROUP_CONCAT或STRING_AGG
jvm·数据库·python
weixin_4597539414 小时前
CSS文本渲染在不同操作系统差异_使用font-smoothing平滑化
jvm·数据库·python
zcn12614 小时前
关于非相关子查询改写经验
数据库·sql·sql优化改写
追梦开发者14 小时前
MongoDB 踩坑实录②:数据建模和索引没搞对,查询慢了整整 10 倍
数据库·mongodb·database