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

相关推荐
搜佛说1 分钟前
第2章-EdgeX-Foundry架构深度解析
数据库·物联网·架构·边缘计算·iot
知识分享小能手6 分钟前
PostgreSQL 入门学习教程,从入门到精通,PostgreSQL 16 服务器配置与数据库监控终极指南 —语法、案例与实战(18)
数据库·学习·postgresql
珠海西格电力12 分钟前
零碳园区全面感知体系的建设成本和收益分析包含哪些关键数据?
大数据·数据库·人工智能·智慧城市·能源
天空属于哈夫克314 分钟前
私域自动化:构建企业微信全链路无人值守运营体系
数据库
wangjinxun21 分钟前
【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
数据库·mysql·数据库开发
sa1002723 分钟前
获取京东评论api接口
数据库
l1t24 分钟前
直接case when 聚合和先聚合后case when在duckdb150和sqlite3.52的性能比较
数据库·sqlite·duckdb
爆炒西瓜@33 分钟前
springboot内存定位,提取数据库账号密码
数据库·spring boot·后端
华科易迅1 小时前
SQL学习
java·sql·学习
数据知道1 小时前
MongoDB分片集群部署:详细生产环境完整搭建
数据库·mongodb