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

相关推荐
玄尺_007几秒前
bug:uniCloud报Business Failed, 参数有误retry invoke error
数据库·bug
@CLoudbays_Martin113 分钟前
CDN是否能有效检测并且同时防御Ddos 和 CC 攻击?
java·服务器·网络·数据库·git·数据库开发·时序数据库
爱喝水的鱼丶26 分钟前
SAP-MM:SAP采购组织全面学习指南:从概念到实战配置图解
运维·开发语言·数据库·学习·sap·mm模块·采购组织
深鱼~1 小时前
DbGate数据库管理新方案:cpolar打造跨平台远程访问通道
数据库
WAWA战士1 小时前
mysql总结
数据库
熊思宇1 小时前
Sqlite“无法加载 DLL“e_sqlite3”: 找不到指定的模块”解决方法
数据库·sqlite
往事随风去1 小时前
面试官:mysql从数据库断开一段时间后,部分binlog已丢失,如何重建主从?
运维·数据库·mysql
J.Kuchiki2 小时前
【PostgreSQL内核学习 —— (SeqScan算子)】
数据库·postgresql
酷酷的崽7982 小时前
Redis 键(Key)的命令
数据库·redis·缓存
189228048612 小时前
NW622NW623美光固态闪存NW624NW635
大数据·网络·数据库·人工智能·microsoft·性能优化