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

相关推荐
r_oo_ki_e_3 分钟前
快速复习mysql
数据库·mysql
huabiangaozhi14 分钟前
修改表字段属性,SQL总结
java·数据库·sql
IvorySQL30 分钟前
第 6 次执行后,PostgreSQL 执行计划为何突变?
数据库·postgresql·开源
小文大数据35 分钟前
python实现HTML转PDF
java·前端·数据库
羊小蜜.35 分钟前
Mysql 03: 连接查询全解——内连接、外连接与复合条件查询
数据库·mysql·算法·连接查询
IvorySQL40 分钟前
PostgreSQL 技术日报 (4月2日)|社区工具更新与内核补丁讨论速递
数据库·postgresql·开源
polaris06301 小时前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
极创信息1 小时前
信创软件安全加固指南,信创软件的纵深防御体系
java·大数据·数据库·金融·php·mvc·软件工程
麦聪聊数据2 小时前
企业数据流通与敏捷API交付实战(一):ETL、CDC与API调用对比
数据库·数据仓库·低代码·restful·etl
笑梦无境2 小时前
mysql基础篇四(多年前整理)
数据库·mysql