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

相关推荐
陈聪.15 分钟前
企业级 NoSQL 数据库 Redis 核心知识整理
数据库·redis·nosql
翼龙云_cloud27 分钟前
腾讯云国际代理商:CDB数据库自动备份和异地灾备配置 从快照到跨区域恢复
运维·数据库·云计算·腾讯云
小屁孩你滑稽掉了27 分钟前
prisma操作数据库的方法使用教程(简洁版)
数据库·node.js·prisma·fastify
l1t1 小时前
利用DuckDB luajit插件和openblas库对表中数据做矩阵运算
数据库·线性代数·矩阵·duckdb
Elastic 中国社区官方博客1 小时前
Elasticsearch:什么是向量数据库?
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·ai
cspttty1 小时前
财务人员学数据分析考什么证
数据库
隔窗听雨眠2 小时前
MySQL索引机制深度解析:从B+树原理到高并发查询优化的完整指南
数据库·b树·mysql
数智化管理手记2 小时前
数据质量无法保障?自动化数据质量规则校验如何搭建方案?
大数据·数据库·自动化
我的xiaodoujiao2 小时前
使用PyMySQL模块技术操作MySQL数据库
数据库·python·测试工具·mysql
zmzmzmalo5 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库