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

相关推荐
武子康16 小时前
Java-168 Neo4j CQL 实战:WHERE、DELETE/DETACH、SET、排序与分页
java·开发语言·数据库·python·sql·nosql·neo4j
一 乐16 小时前
校园墙|校园社区|基于Java+vue的校园墙小程序系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·小程序
合作小小程序员小小店16 小时前
桌面开发,在线%考试管理%系统,基于eclipse,java,swing,mysql数据库。
java·数据库·mysql·eclipse·jdk
谅望者16 小时前
数据分析笔记01:数据分析概述
大数据·数据库·数据仓库·数据分析
凯子坚持 c16 小时前
从 API 到应用:用 Rust 和 SQLx 为 Axum 服务添加持久化数据库
数据库·oracle·rust
傻啦嘿哟16 小时前
爬取数据存入SQLite:轻量级数据库实战指南
数据库·sqlite
小红的布丁18 小时前
Redis存储引擎剖析:从哈希表到智能数据结构
数据库·redis
饮长安千年月18 小时前
玄机-第八章 内存马分析-java02-shiro
数据库·安全·web安全·网络安全·应急响应
chxii19 小时前
第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
数据库·mysql