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

相关推荐
minji...2 分钟前
Linux 进程间通信(一)进程间通信与匿名管道
linux·运维·服务器·数据结构·数据库·c++
XDHCOM6 分钟前
ORA-12532: TNS:invalid argument 故障解析,Oracle报错远程处理技巧与修复方法分享
数据库·oracle
IMPYLH11 分钟前
Linux 的 csplit 命令
linux·运维·服务器·数据库
cm65432017 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
星辰_mya19 分钟前
利用 BeanPostProcessor 实现动态增强与框架开发
数据库
qq_4160187222 分钟前
游戏与图形界面(GUI)
jvm·数据库·python
Sunshine for you23 分钟前
使用Python分析你的Spotify听歌数据
jvm·数据库·python
2401_8845632424 分钟前
用Python读取和处理NASA公开API数据
jvm·数据库·python
逸Y 仙X25 分钟前
文章十一:ElasticSearch Dynamic Template详解
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
2301_7938046926 分钟前
用Python制作一个文字冒险游戏
jvm·数据库·python