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

相关推荐
Treh UNFO2 分钟前
SQL 注入详解:原理、危害与防范措施
数据库·sql·oracle
m0_640309302 分钟前
CSS中如何让浮动元素撑开父容器_深度解析清除浮动
jvm·数据库·python
2301_816660213 分钟前
Golang bufio怎么读取用户输入_Golang标准输入读取教程【详解】
jvm·数据库·python
hsjcjh6 分钟前
PostgreSQL 查看数据库及表中数据占用空间大小
数据库·postgresql·oracle
解救女汉子7 分钟前
Golang如何创建和删除目录_Golang目录操作教程【完整】
jvm·数据库·python
小猿姐7 分钟前
数据库漏洞自动同步,KubeBlocks Addon 安全能力再升级
数据库·安全
ClouGence9 分钟前
从 Spanner 到 StarRocks:把云账单砍掉 80%
数据库·dba
m0_588758489 分钟前
CSS如何修复Safari下边框圆角溢出问题_利用background-clip属性修正
jvm·数据库·python
m0_7349497912 分钟前
uni-app怎么做横向滚动导航 uni-app滚动菜单Tab实现教程【代码】
jvm·数据库·python
2301_7751481513 分钟前
SQL如何检查字符串是否存在:INSTR与LOCATE函数使用
jvm·数据库·python