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

相关推荐
小小龙学IT1 天前
Drizzle ORM:TypeScript 生态中冉冉升起的数据库工具链引言
javascript·数据库·typescript
ECT-OS-JiuHuaShan1 天前
什么是对和错?——“有针对性定义域的逻辑值的真伪”:认识论终极追问的公理化裁决
数据库·人工智能·算法·机器学习·数学建模
乐维_lwops1 天前
多类型数据库如何高效监控?
数据库·数据库监控·运维监控
齐潇宇1 天前
Redis数据库基础
linux·数据库·redis·缓存
CodeStats1 天前
从JDBC时代到MyBatis封神:SQL全流程手写ORM实战
sql·mysql·mybatis
三更两点1 天前
AI拉呱-技术洞察 - 2026-06-01
数据库·人工智能·技术洞察
程序边界1 天前
KES查询优化与运维实战:从表空间到SQL内核那些让DBA少加班的事
数据库
Lyyaoo.1 天前
【MySQL】存储引擎
数据库·mysql
huluang1 天前
密评多选题 — 陷阱名单(费曼自述法版)
网络·数据库·密码学
AOwhisky1 天前
学习自测与解析:MySQL 系列第三期与第四期
linux·运维·数据库·学习·mysql·云计算