返回随机结果(按 rand() 排序)

2023-12-03

我记得在某处读到过使用 order by rand() 是不好的,我刚刚启动它并找到了一篇文章证明了这一点。对于大型数据库,通过 rand() 进行排序可能会非常慢,建议的解决方案是在 php 中生成随机数并根据它进行选择。问题是我需要验证其他字段才能返回我的记录。我可能还删除了一些旧记录,这也可能会导致问题。任何人都可以提供一种体面的方法来从表中选择一些符合某些条件的随机记录(例如字段paid必须等于 1) ?


订购方式的原因RAND()速度可能会很慢,因为您强制数据库在返回任何内容之前对整个表进行实际排序。仅将负载减少到单个表扫描会快得多(尽管仍然有点慢)。

这意味着您可以通过避免排序来达到目的:

  SELECT *
    FROM my_table
   WHERE RAND() < 0.1
ORDER BY RAND()
   LIMIT 100

这将选择表中所有行的大约 1%,对它们进行排序并返回前 100 行。请注意,这里的主要问题(以及 @cmd 的答案)是您无法确定查询是否返回任何事情。

上述方法应涉及全表扫描(以决定使用哪些行),然后对大约 1% 的行进行排序。如果行数较多,则可以相应减少百分比。

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

返回随机结果(按 rand() 排序) 的相关文章

  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • 生成两个日期内的随机日期数组的优雅方法

    我有一个日期选择器 其中显示两个月 我想在每个可见月份中随机选择 3 个日期 date datepicker minDate new Date dateFormat DD MM d yy constrainInput true before
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 仅当值发生更改时如何插入数据库?

    我需要更新 替换 MySQL 数据库中的字段 但前提是它们已更改 该表包含 ID 文本字段和更改日期 用户根据更改日期通过 ID 查询数据 即 如果该日期早于用户上次查询数据的时间 则他不想要它 仅当文本字段与具有相同 ID 的现有文本字段
  • 随机采样数组的唯一子集

    如果我有一个数组 a 1 2 3 如何随机选择数组的子集 以使每个子集的元素都是唯一的 也就是说 对于a可能的子集是 1 2 3 1 2 2 3 1 2 3 我无法生成所有可能的子集 因为 a 的实际大小非常大 因此有很多很多子集 目前 我
  • 连接 Netbeans 和 MySQL 但出现大整数错误

    所以我正在尝试向我的 Netbeans 数据库 即 MySQL 添加新连接 但我遇到了大整数转换错误 有人可以帮助我吗 详细地 我右键单击现有的MySQL 服务器位于 localhost 3306 root 已断开连接 gt gt 选择co
  • 如何优化这个MySQL慢(非常慢)查询?

    我有一个 2 GB 的 mysql 表 包含 500k 行 我在没有负载的系统上运行以下查询 select from mytable where name in n1 n2 n3 n4 bunch more order by salary
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • 合并两个 MYSQL SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 如何将两个 Post Category 表 MYSQL SELECT 查询合并为一个 https stackoverflow com questions 12972130 how to combine
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca

随机推荐

  • 当我尝试在内核中使用 printf() 时出现错误

    我使用的是 Visual Studio 2010 和具有计算能力 2 0 的 GTX480 我尝试将 sm 设置为 2 0 但是当我尝试在内核中使用 printf 时 我得到 错误 从 device global 调用主机函数 printf
  • ACR122U NFC读写器频繁断线

    当我将 SIII Android 4 3 放在 ACR122U NFC 读卡器上时 LED 持续闪烁绿色 当我将 Samsung S4 Android 4 3 放入读卡器时 LED 会变绿直到手机位于读卡器上 在这两种情况下 NFC 均已打
  • Python OOP 和列表

    我是 Python 新手 它是 OOP 的东西 无法让它工作 这是我的代码 class Tree root None data def init self equation self root equation def appendLeft
  • 设置触发器以在每月的最后一个小时运行函数

    在谷歌脚本中 我知道有按日期运行的触发器 但我认为这不会起作用 因为每月的天数不同 所以我想知道是否有办法设置触发器在每月最后一个晚上 11 点运行 无论是 30 还是 31 Thanks 首先从项目创建一个触发器编辑 gt 当前项目的触发
  • 是否可以从管道步骤动态设置 Jenkins 作业参数?

    我有以下 简化的 Jenkins 管道代码 jobParams groovy List get Object paramVars def params params choice choices branch tag name RELEAS
  • WCFTestClient HTTP 请求未经客户端身份验证方案“匿名”的授权

    我创建了一项 WCF 服务并将其部署在服务器上 当我浏览此服务时 它会通过 wsdl URL 给出积极响应 现在我正在尝试通过 WCF 测试客户端测试该服务 它显示了正确的元数据 但是 当我尝试从服务中调用任何方法时 它会显示一个异常 这是
  • 使用 NSCoder 保存自己的类

    我正在尝试将一些自定义类 数据存储到我的 iPhone iPad 应用程序中的文件中 我有一个 RSHighscoreList 类 interface RSHighscoreList NSObject NSMutableArray list
  • 从看板中过滤史诗

    首先我想说我已经读过集会看板 隐藏史诗故事但我在根据估算板应用程序的过滤过程实现过滤器时仍然遇到麻烦 目前 我正在尝试将项目过滤器添加到我的纸板的查询对象中 查询对象调用 this getItems 以返回要从中进行筛选的项目数组 据我所知
  • 电子邮件验证器

    我的电子邮件验证码出现问题 我不断收到我的函数未定义的错误 我为java代码制作了一个javascript文件 然后我在html中使用了onchange来触发该函数
  • XML 解析错误:找不到元素位置:http://localhost:8081/web-app/pages/login.xhtml 第 1 行,第 1 列:^

    My login xhtml以 开始 我正在使用 Java 8 JSF Primefaces Maven Tomcat8 我认为我的配置有问题 例如小服务程序和web xml XML 解析错误 未找到元素位置 行号 1 列 1 就这一点而言
  • “wc”命令的行为是什么?

    例如 myCleanVar wc l lt myFile myDirtVar wc l myFile echo myCleanVar 9 echo myDirtVar 9 myFile 为什么在 myCleanVar 中我从 wc 命令中获
  • git:对“非快进”错误的基本误解

    当我自己工作时 不了解 git 的基础知识还可以 但是现在我正在与另一个人一起工作 并且我们每个人都提交拉取请求以让对方合并它们 这开始成为一个问题 工作流程 我在我的 作者 分支中编写 当准备好进行审查时 我提交一个拉取请求 然后我的编辑
  • pyttsx3初始化错误,无法使用pyttsx3

    我在 pyttsx3 中使用 getproperty voices 属性时遇到一些问题 所以我决定卸载它 然后使用 PIP 重新安装它 看看是否可以解决问题 当我遇到 getproperty voices 错误时的上一个链接 当我尝试访问语
  • VB6 - 使用指针声明和调用 C DLL

    我有一个旧的 C DLL 用来从 Ruby 调用 但现在我需要从 VB6 调用它 但我不知道正确的方法 这是我需要的函数的标题 int Decrunch const BYTE src BYTE dest DWORD src length s
  • 如何传递对象id?

    我有两个模型之间的关系 类别型号 class Category lt ActiveRecord Base belongs to product end 产品型号 class Product lt ActiveRecord Base has
  • 如何使用 Torque/MOAB 调度程序设置 doSNOW 和 SOCK 集群?

    继续这个问题 https stackoverflow com questions 17222942 allow foreach workers to register and distribute sub tasks to other wo
  • 如何使用 Visual Studio 2010 在 Windows 上使用 Open MPI 构建 boost::mpi 库

    我安装了 Open MPI 1 5 4 64 位 并尝试使用 bjam 重建 boost 库 1 48 我更改了 user config jam 文件 添加了 using mpi 行和显式编译器路径 尽管 mpic 已经在 PATH 环境变
  • PHP mysqli_result:将 Traversable 接口与 fetch_object 结合使用

    PHP mysqli result 类实现 Traversable 接口已经有一段时间了 这提供了一些有趣的可能性 例如下面的代码
  • 如何使用 OpenCV 从图像中删除特定标签/贴纸/对象?

    我有数百张珠宝产品的图片 其中一些带有 畅销书 标签 标签的位置因图像而异 我想迭代所有图像 如果图像具有此标签 则将其删除 生成的图像将在已删除对象的像素上渲染背景 带有标签 贴纸 对象的图像示例 要删除的标签 贴纸 物体 import
  • 返回随机结果(按 rand() 排序)

    我记得在某处读到过使用 order by rand 是不好的 我刚刚启动它并找到了一篇文章证明了这一点 对于大型数据库 通过 rand 进行排序可能会非常慢 建议的解决方案是在 php 中生成随机数并根据它进行选择 问题是我需要验证其他字段