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

相关推荐
鸡蛋灌Bean3 分钟前
MySQL优化系列
数据库·mysql
数巨小码人15 分钟前
平滑迁移:传统到国产数据库的2026转型之路
数据库
麦聪聊数据1 小时前
QuickAPI 在系统数据 API 化中的架构选型与集成
数据库·sql·低代码·微服务·架构
2403_835568471 小时前
自然语言处理(NLP)入门:使用NLTK和Spacy
jvm·数据库·python
wal13145201 小时前
Dify发布V1.13.1版本,Hologres 向量数据库支持、HITL 邮件 Markdown 渲染及多项安全加固
数据库·安全·dify
Leon-Ning Liu2 小时前
Oracle UNDO表空间文件误删除故障恢复
数据库·oracle
2301_776508722 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
cxr8282 小时前
PaperclipAI 组织关系与智能体协作指南
数据库·人工智能·架构·ai智能体·openclaw
@insist1233 小时前
数据库系统工程师-Armstrong 公理系统:函数依赖推理与候选码求解核心方法论(重点)
数据库·软考·软件设计师·软件水平考试
山峰哥3 小时前
查询优化案例:从慢查询到闪电般的查询速度
数据库·sql·性能优化·编辑器·深度优先