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

相关推荐
曹牧3 分钟前
Oracle:“列不能外部关联到子查询”
数据库·sql
档案宝档案管理18 分钟前
核心功能揭秘——档案管理系统如何破解档案管理难题?
大数据·数据库·安全·档案·档案管理
Databend21 分钟前
如何打造AI时代的数据基石 | Databend Meetup 上海站回顾
数据库
wudl556643 分钟前
向量数据库--FAISS
数据库·faiss
冲的运维日常1 小时前
Redis:查看RDB文件内容
数据库·redis·缓存
艾体宝IT1 小时前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
数据库
梁bk1 小时前
Redis网络模型 - 从fd和I/O模型到redis网络模型,再到I/O多线程,7000字长文预警
网络·数据库·redis
w***i2941 小时前
【SQL】count(1)、count() 与 count(列名) 的区别
数据库·sql
Hui Baby1 小时前
mysql的自定义HINT语法-实战
数据库·mysql·adb
一 乐1 小时前
鲜花销售|基于springboot+vue的鲜花销售系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring