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

相关推荐
yejqvow12几秒前
php怎么调用字节跳动AI商品推荐_php如何基于用户行为生成千人千面
jvm·数据库·python
weixin_568996067 分钟前
HTML怎么离线使用_HTML缓存策略基础配置【教程】
jvm·数据库·python
2301_7735536211 分钟前
怎么删除MongoDB中不再使用的账号
jvm·数据库·python
qq_3422958212 分钟前
SQL报表星型模型优化_事实表索引设计
jvm·数据库·python
二月十六13 分钟前
SQL Server 2022 新特性:Ledger 账本表详解(防篡改审计利器)
数据库·sqlserver·防篡改
u01091476016 分钟前
SQL优化多表关联中的字符串连接字段_建立前缀索引提升JOIN
jvm·数据库·python
Maverick0616 分钟前
Oracle 会话连接查询
数据库·oracle
2301_7775993720 分钟前
Oracle环境下的设置主键与自增列指南_特定语法与可视化配置
jvm·数据库·python
a95114164220 分钟前
Golang怎么用go get添加依赖_Golang如何在项目中引入第三方库【入门】
jvm·数据库·python
老王谈企服21 分钟前
[信创选型] 2026国产化替代进入应用层:有没有通过国产化认证、能在麒麟系统上跑的合规Agent?
数据库·人工智能·ai