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

相关推荐
F1FJJ2 分钟前
Shield CLI 的 PostgreSQL 插件 v0.5.0 发布:数据库导出 + 协作增强,ER 图全新体验
网络·数据库·docker·postgresql·go
weixin1997010801617 分钟前
《深入浅出:图解淘宝分布式数据库TDDL(及开源替代方案)》
数据库·分布式·开源
数据库小组37 分钟前
Oracle 上云 / 替代场景下,NineData 完成到 PostgreSQL 的低风险迁移
大数据·数据库·mysql·postgresql·oracle·数据一致性·数据库迁移
Ricky_Theseus1 小时前
SQL Server 2008 四种排序函数
数据库
柚子+1 小时前
Appium+python+雷电模拟器自动化测试入门
数据库·python·appium
云边有个稻草人1 小时前
SQL调优实战手册:索引、并行、参数调优一站式解决方案
数据库
数安3000天1 小时前
数据脱敏产品需要关注哪些因素?
数据库
杰克尼1 小时前
知识点总结--day05( 数据库)
数据库
代码派1 小时前
SQL 审核解决了部分问题,另一部分是慢 SQL 治理
数据库·sql·mysql·数据库管理工具·ninedata·sql审核·sql治理
qq_366086221 小时前
MyBatis 动态 SQL 高频性能优化方案
sql·性能优化·mybatis