如何用教义随机选择

2023-12-03

这是我在数据库中查询某些单词的方法

$query = $qb->select('w')
    ->from('DbEntities\Entity\Word', 'w')
    ->where('w.indictionary = 0 AND w.frequency > 3')
    ->orderBy('w.frequency', 'DESC')
    ->getQuery()
    ->setMaxResults(100);

我正在使用 mysql,我想获得符合条件的随机行,我将在查询中使用 order by rand() 。

I found 这个类似的问题基本上表明,由于原则上不支持 ORDER BY RAND,因此您可以随机化主键。但是,在我的情况下无法完成此操作,因为我有一个搜索条件和一个 where 子句,因此并非每个主键都满足该条件。

我还找到了一个代码片段这建议您使用 OFFSET 来随机化行,如下所示:

$userCount = Doctrine::getTable('User')
     ->createQuery()
     ->select('count(*)')
     ->fetchOne(array(), Doctrine::HYDRATE_NONE); 
$user = Doctrine::getTable('User')
     ->createQuery()
     ->limit(1)
     ->offset(rand(0, $userCount[0] - 1))
     ->fetchOne();

我有点困惑,这是否能帮助我解决在我的情况下缺乏对随机排序的支持的问题。我无法在 setMaxResult 之后添加偏移量。

知道如何实现这一点吗?


教义团队不愿意实现这个功能.

您的问题有多种解决方案,每种方案都有其自身的缺点:

  • Add a 自定义数值函数: 看这个DQL RAND() 函数
    (如果你有很多匹配的行,可能会很慢)
  • Use a 原生查询
    (我个人尝试避免这种解决方案,我发现它很难维护)
  • 首先发出原始 SQL 查询以随机获取一些 ID,然后使用 DQLWHERE x.id IN(?)通过将 ID 数组作为参数传递来加载关联对象。
    该解决方案涉及两个单独的查询,但是might提供比第一个解决方案更好的性能(其他原始 SQL 技术比ORDER BY RAND()存在,我不会在这里详细介绍它们,您可以在这个网站上找到一些很好的资源)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用教义随机选择 的相关文章

  • 在 PHP 数组定义中显示重复键警告

    下面的代码是否可以得到警告 error reporting E ALL s array a gt 1 a gt 1 var export s 你唯一的希望 除了count 你自己 是你的编辑足够聪明 可以突出显示拼写错误 此屏幕截图来自 P
  • Laravel Eloquent 预加载:加入同一个表两次

    我有一个users表和一个约会桌子 在约会表中 我有两个用户 ID customer id staff id 我想检索所有带有客户姓名和员工姓名的约会 users table id name appointments table id st
  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • 获取给定日期时间集的每月第一个星期一

    我需要什么 我有一个特定的日期时间列表 我想获取每个日期时间的第一个星期一 例如 假设给定的日期时间是 2013 07 05 2013 08 05 2013 09 13 etc 我想获得所有这些日期时间的第一个星期一 以便输出结果 2013
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • 将 PHP 中的 openssl AES 转换为 Python AES

    我有一个 php 文件 如下所示 encryption encoded key c7e1wJFz PBwQix80D1MbIwwOmOceZOzFGoidzDkF5g function my encrypt data key encrypt
  • zend 表单验证

    我想知道 Zend Form 如何验证输入 我的意思是它如何知道要验证哪些输入字段 我查看了 php 全局变量 POST GET 但没有看到任何设置为标识符 例如 的内容 以便了解如何验证 有人能给我推荐一些关于这些东西的指南吗 好吧 找出
  • DataTables 第 2 页的分页未调用放大弹出窗口

    所以我有这个启用分页的数据表 我编码了一种方式 以便用户可以编辑表的行 当用户调用它在放大弹出窗口中打开的编辑页面时 它在第 1 页 从第 2 页起都运行良好 DataTable 及其前面停止调用 Magnific Popup 我只是不明白
  • Memcache 不会刷新或清除内存

    我一直在尝试清除我的内存缓存 因为我注意到使用时存储占用了近 30 的服务器内存ps aux 所以我运行了以下 php 代码 memcache new Memcache memcache gt connect localhost 11211
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 当路由不存在时重定向 laravel 4

    我正在使用 laravel 4 当我的项目处于生产模式时 我得到 抱歉 找不到您要查找的页面 当我到达一条不存在的路线时 当我 grep 我的代码时 它在两个地方找到 vendor symfony debug Symfony Compone
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • ASP.NET MVC 3 中嵌入的 PHP 站点的 IgnoreRoute

    我有一个带有嵌入式 WordPress 博客的 MVC 3 网站 以下所有 url 均通过 MVC 定向 www mysite com www mysite com aboutus www mysite com contactus 我还有一
  • 使用 Imagick 动态图像创建/Apache 标头

    在将现有的稳定网站转移到新服务器时 我遇到了一些使用 Imagick 动态创建图像的代码的间歇性问题 该代码解析 GET 查询 例如 example com image php ipid 750123 r 0 w 750 h 1000 然后
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • PHP 中根据相似值对数组进行分组

    我有一个具有以下结构的数组
  • PHP date() 和 strtotime() 返回错误的月份 31 日

    我在用着date and strtotime 函数在下拉列表中显示接下来的 3 个月 PHP代码 echo date m Y strtotime 0 months echo date m Y strtotime 1 months echo
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 使用 Selenium 的 Chrome 驱动程序:“没有为 RemoteWebDriver 找到合适的构造函数”

    我正在尝试在 java 绑定下将 chrome 驱动程序与 Selenium 一起使用 我遵循以下说明 Chrome 驱动程序说明 所以我运行 ChromeDriver exe 将其放入我的代码中WebDriver driver new R
  • 由于 $(document).ready,Jquery 函数无法工作

    我们有两个js test 1 js test 2 js 在 test 1 js 中 代码是 document ready function function test alert alert hiii 在 test 2 js 中 docum
  • 如何正确安装 PyGObject? (操作系统)

    我想运行现有的简单示例并使用 GStreamer 编写一些简单的代码 具体来说 使用其 Python 绑定 我想安装软件包等来启用它 这是一个例子 http brettviren github io pygst tutorial org p
  • 使用需要将反引号作为 bash 参数的一部分传递的命令

    我有一个bash脚本如下 靠近table变量 我想像在我的脚本中一样使用反引号 bin bash ne 2 echo Usage 0 database table exit 1 database 1 table 2 hive e alter
  • Python/Django TangoWithDjango 模型和数据库

    我目前正在关注http www tangowithdjango com我正在尝试用以下内容填充现有数据库populate rango py 当我创建新类别时 我试图获取视图并喜欢填充以下内容 Python 128 64 Django 64
  • 从不同的电子邮件地址发送 Outlook 预约

    尝试通过 python 发送 Outlook 日历邀请来自动化日历通知 我想从一个单独的电子邮件地址发送电子邮件 在python的email包中 可以使用sendmail 指定from address和to address 但是 我似乎不知
  • Ruby - 返回包含 Bignum/Fixnum 的二进制补码表示的字节数组

    我试图返回一个字节数组 其中包含 Bignum 或 Fixnum 在 Ruby 中 的补码表示形式 Java 中有一个方法可以做到这一点 文档 Java toByteArray 方法 其代码 https gist github com 86
  • Admob 广告接收时的用户界面扭曲

    每当 Admob 广告出现时 Android 用户界面就会扭曲 这发生在正在播放一些动画的屏幕上 在此屏幕上 我有一个带有 android repeatCount infinite 动画的按钮 自从我将 admob 广告 ID 更改为新的
  • `无法访问'XXX':无法解析主机` Gitlab CI/CD 管道

    我们将 Gitlab 托管在私人专用服务器上 只能通过 L2TP VPN 隧道访问 域的 DNS 设置为内部网络中主机的 IP 因此显然没有 VPN 就无法访问它 问题是 当触发 Gitlab CI CD 时 作业中会出现错误 日志如下 F
  • 流数组类型在该类型的子集上失败

    我有一个在很多不同地方使用的函数 因此它的类型非常广泛 export const stringToArrayFn accessor Function string boolean Object Array
  • 禁用浏览器垂直和水平滚动条

    是否可以使用 jQuery 或 javascript 禁用浏览器垂直和水平滚动条 如果您需要动态隐藏和显示滚动条的可能性 您可以使用 body css overflow hidden and body css overflow auto 在
  • 为什么接口中的所有字段都是隐式静态和最终的?

    我只是想理解为什么接口中定义的所有字段都是隐式的static and final 保留字段的想法static对我来说很有意义 因为你不能拥有接口的对象 但为什么它们是final 隐含地 任何人都知道为什么 Java 设计者选择在界面中创建字
  • 结合 JQuery 和 AngularJS

    基于AngularJS文档 https docs angularjs org api ng function angular element It says 如果 jQuery 可用 则 angular element 是 jQuery 函
  • Android API 连接到 Wifi 网络

    我完全迷失在 WiFi API 的版本中 我想以编程方式连接到已配置的 WiFi 网络 正如这个问题中所描述的 以编程方式连接到 Android wifi 网络 我在 Android 10 上进行开发 想要编写也与旧版 Android 版本
  • 使用 Bootstrap 将侧边栏分为主要内容周围的顶部和底部

    每当屏幕尺寸接近移动设备分辨率时 我尝试使用 Bootstrap 将左对齐侧边栏分成两个不同的部分 这篇 StackOverflow 帖子设置我想要做的事情 但从下图可以看出 当我尝试让侧边栏显示为一个连接部分时 我遇到了列换行问题 下图显
  • 如何匹配NLTK CFG中的整数?

    如果我想定义一种语法 其中一个标记将匹配一个整数 我如何使用 nltk 的字符串 CFG 来实现它 例如 S gt SK SO FK SK gt SELECT SO gt d FK gt FROM 创建一个数字短语 如下所示 import
  • 初学者Python“无”问题

    我刚刚开始使用 python 自从我开始了一个新的计算器项目以来 pyCharm 在所有内容之后都没有吐出任何内容 我不确定是什么导致了这个错误 如果我能在这里得到一些帮助 我将不胜感激 这只是我展示的主要功能 这是代码 def main
  • 为什么 IEEE754 标准中除以零会产生无限值?

    我只是好奇 为什么在IEEE 754任何非零浮点数除以零都会得到无限值 从数学角度来看这是无稽之谈 所以我认为此操作的正确结果是 NaN 如果 x 是实数 则当 x 0 时 函数 f x 1 x 没有定义 例如 函数 sqrt 未定义为任何
  • 如何从 Jenkins 的提交消息中获取 JIRA 问题号

    我使用 Gitlab 进行源代码管理 使用 jenkins 进行 CI 作业 使用 JIRA 进行问题跟踪 一旦我在 gitlab 中提交了一个问题号 例如 Project 123 编辑的演示文件 我就有一个触发构建的 jenkins 钩子
  • 如何用教义随机选择

    这是我在数据库中查询某些单词的方法 query qb gt select w gt from DbEntities Entity Word w gt where w indictionary 0 AND w frequency gt 3 g