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

相关推荐
gQ85v10Db16 分钟前
Redis分布式锁进阶第二十二篇
数据库·redis·分布式
薪火铺子16 分钟前
MySQL 锁机制与死锁分析深度解析
数据库·mysql
曹牧1 小时前
Oracle:将包含属性(Attributes)的 XML 数据解析为表格数据
xml·数据库·oracle
@小匠1 小时前
Redis RDB持久化之 save 自动备份检查机制
数据库·redis·bootstrap
折哥的程序人生 · 物流技术专研1 小时前
从“卡死”到“跑通”:WMS机器学习全流程实战排坑记
数据库·人工智能·机器学习
上海云盾商务经理杨杨1 小时前
Web渗透核心漏洞:SQL注入漏洞测试与修复实战
数据库·sql·安全
2303_821287382 小时前
c++ RAII机制详解 c++如何利用RAII管理资源
jvm·数据库·python
小宇的天下2 小时前
Calibre 3Dstack --每日一个命令day25【no_trace】(3-25)
数据库
Irene19913 小时前
(课堂笔记)游标与动态SQL(EXECUTE IMMEDIATE):使用 CHR(39) 替代拼接单引号
sql
m0_624578593 小时前
C#怎么获取U盘的插拔事件_C#如何重写WndProc捕获消息【进阶】
jvm·数据库·python