从 MySQL 中选择随机行(有概率)

2024-03-25

我有一个 MySQL 表,其中有一行名为 cur_odds,它是一个百分比数字,表示该行被选中的百分比概率。例如,当您运行 100 个查询时,如何进行查询以大约该频率实际选择行?

我尝试了以下操作,但概率为 0.35 的行最终在大约 60-70% 的时间内被选中。

SELECT * FROM table ORDER BY RAND()*cur_odds DESC

表中cur_odds的所有值加起来正好为1。


If cur_odds很少改变,你可以实现以下算法:

1)创建另一列prob_sum,对于其中

prob_sum[0] := cur_odds[0]

对于 1

prob_sum[i] := prob_sum[i - 1] + cur_odds[i]

2)生成0到1之间的随机数:

rnd := 兰特(0,1)

3)找到第一行prob_sum > rnd(如果您在prob_sum,查询应该运行得更快):

创建索引 prob_sum_ind ON (prob_sum);

设置@rnd := RAND();

从 中选择 MIN(prob_sum),其中 prob_sum > @rnd;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 MySQL 中选择随机行(有概率) 的相关文章

随机推荐

  • 寻找多条短路径的算法

    寻求一种能够产生 N 条短路径的算法 有没有人有算法的经验来寻找多条短路径在有向图中 我的应用程序用于语言 查找同义词链 但从逻辑上讲 这可能用于地理或社交网络 我想要明显不同的路径 而不仅仅是沿途交换几个节点 我真的很想知道是否有办法避免
  • Java中的线程何时从内存中删除? [复制]

    这个问题在这里已经有答案了 来自 Java API 文档 Java虚拟机继续执行线程 直到遵循 发生 所有非守护线程的线程都已死亡 或者通过返回 从调用 run 方法或抛出异常 传播到 run 方法之外 我希望我的假设是正确的 一旦线程完成
  • Cloud Firestore 中的 SQL LIKE 运算符?

    我使用 Firebase 实时数据库已经有一段时间了 今天我遇到了 Cloud Firestore 我不知道如何在 Firestore 上使用 LIKE 运算符 Firebase 实时数据库 ref child user orderByCh
  • 将字符串转换为 Enum 类

    免责声明 我不会说我是最有经验的 Java 人 可能有更简单的方法来完成我在示例中所做的事情 但这是一个关于将字符串条目转换为枚举类而不是枚举变量的问题 我尽力解释 这是我想做的事情的简单版本 我将有两个不同的枚举 我想根据用户的需求选择其
  • 继承自 std::vector

    这里有很多答案说不要从 std vector 等继承 例如这个问题 https stackoverflow com questions 10353954 potential problems with inheriting from std
  • Asp.net 4.0:如何获取自定义错误页面中的异常详细信息?

    我们正在使用 asp net 配置设置提供的自定义错误 在整个应用程序 PL BLL DAL 中 我们没有使用任何 try catch 因此 对于任何层应用程序中的任何异常 都将用户重定向到配置文件中自定义错误设置中设置的自定义错误页面 现
  • Kafka Streams - SerializationException:未知的魔术字节

    我正在尝试创建一个处理 Avro 记录的 Kafka Streams 应用程序 但出现以下错误 Exception in thread streams application c8031218 8de9 4d55 a5d0 81c30051
  • WebSockets ping/pong,为什么不 TCP keepalive?

    WebSockets有选择权 https www rfc editor org rfc rfc6455 section 5 5 2发送 ping 到另一端 另一端应该用 pong 响应 收到 Ping 帧后 端点必须发送 Pong 帧 响应
  • Selenium 在 Firefox 中使用过多 RAM

    我在 Firefox 中使用 selenium 来自动执行 Instagram 上的一些任务 它基本上在用户配置文件和通知页面之间来回切换 并根据找到的内容执行任务 它有一个无限循环来确保任务继续进行 我每隔几步就有 sleep 函数 但内
  • 即使用户也可以访问需要限制的APEX页面

    我创建了一个 4 页的应用程序 Home 管理页面 计算体重指数 About 然后我进入 gt shared components gt Select Authorization schema gt Create 我已将其命名为only a
  • Visual Studio 2012 的数据库资源管理器中缺少图表文件夹

    我正在设计一个网站 突然数据库图表文件夹从数据库资源管理器中消失了 我不知道发生了什么以及现在该怎么做 因为我迫切需要它来继续我的工作 手动将表添加到数据库对我来说不是一个选择 我找了一整天的解决方案 甚至重新安装了Visual Studi
  • React-ReduxReducers 中 Spread 语法的用途

    我试图理解扩展运算符的目的 根据我从文档中了解到的 扩展语法会复制现有对象 并在传入新对象时被覆盖 在下面的代码中 export default function reducer state user fetching false fetc
  • 使用 python 进行实时 mp3 ffmpeg 编码器时出错

    我有如下代码 我想录制声音并将每个 wav 帧转换为 mp3 格式 使用 ffmpeg 实时 import pyaudio sys import subprocess command ffmpeg y f wav i f mp3 proce
  • C/C++ va_list 未正确返回参数

    我在使用 va list 时遇到问题 下面的代码适用于 int main int f1 1 float m function n f1 float function int n va list mem list va start mem l
  • 有没有更短更简洁的方法来用Javascript隐藏和显示div?

    我正在创建一个仪表板 其中包含大约 20 个以 display none 开头的 div 当使用侧边栏中的 onClick 时 它将显示特定的 div 并隐藏所有其他 div 我使用了为每个 div 创建一个函数的经典解决方案 但是 它非常
  • 为什么我的输入值没有用 React 更新?

    我的组件中有以下代码 当我更新某些内容时 它会被调用 从而替换 UI 中的一堆内容 除了用户看到的输入值之外 所有内容都在更新 let input id discount geo segment value percentage disab
  • Javascript,从“”中删除类的最快方法

    我有一个 body 元素 在上面添加了一些类 我想删除no javascript在浏览器读取它之后 从中获取类 好吧 既然之间的额外空格并不重要 我会说 document body className document body class
  • 如何在 Jetpack Compose 中监听生命周期

    我正在使用 Jetpack Compose 创建一个应用程序 该应用程序在后台进行一些网络搜索 如果用户决定按后退按钮 我想取消搜索 所以我用了DisposableEffect Composable fun SecondScreen val
  • 操作栏上没有显示操作按钮? [复制]

    这个问题在这里已经有答案了 我正在关注以下教程开发者 android com http developer android com并尝试在操作栏上添加项目 尽管我添加了所有代码 但搜索操作显示为溢出元素而不是操作按钮元素 我尝试了带有软键盘
  • 从 MySQL 中选择随机行(有概率)

    我有一个 MySQL 表 其中有一行名为 cur odds 它是一个百分比数字 表示该行被选中的百分比概率 例如 当您运行 100 个查询时 如何进行查询以大约该频率实际选择行 我尝试了以下操作 但概率为 0 35 的行最终在大约 60 7