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

相关推荐
m0_747854522 分钟前
PHP 中 OR 运算符逻辑误用的典型陷阱与正确写法
jvm·数据库·python
Shorasul2 分钟前
JavaScript中Symbol类型的唯一性特征与创建规范
jvm·数据库·python
王仲肖3 分钟前
PostgreSQL查询执行阶段 — 总结与执行计划选择指南
数据库·postgresql
解救女汉子4 分钟前
Bootstrap Gutters间距用法 Bootstrap 5中g-,gx-,gy--如何使用
jvm·数据库·python
2401_887724506 分钟前
JavaScript中Object-hasOwn作为现代安全检测方案
jvm·数据库·python
qq_3345635512 分钟前
如何利用RETURNING获取ROWID_更新单行后快速定位物理地址
jvm·数据库·python
zhangchaoxies14 分钟前
HTML怎么显示同步最后成功时间_HTML “上次同步:X分钟前”【教程】
jvm·数据库·python
m0_5145205720 分钟前
mysql服务器如何优化网络传输设置_调整tcp相关内核参数
jvm·数据库·python
m0_6403093020 分钟前
如何快速重置SQL表中的自增ID_使用ALTER TABLE重置计数
jvm·数据库·python
2301_7641505622 分钟前
CSS如何制作响应式导航栏_利用Flexbox实现自适应水平排列
jvm·数据库·python