使用codeigniter按每个类别的降序获取三个记录

2024-02-21

我有两个类别,我想获取每个类别的三个记录,后来我找到了这个链接使用 Codeigniter 活动记录模式进行 UNION 查询 https://stackoverflow.com/questions/2040655/union-query-with-codeigniters-active-record-pattern#answer-14658160之后我更改我的 DB_Active_rec 文件并添加此代码

var $unions = array();

public function union_push($table = '') {
    if ($table != '') {
        $this->_track_aliases($table);
        $this->from($table);
    }

    $sql = $this->_compile_select();

    array_push($this->unions, $sql);
    $this->_reset_select();
}

public function union_flush() {
    $this->unions = array();
}

public function union() {
    $sql = '(' . implode(') union (', $this->unions) . ')';
    $result = $this->query($sql);
    $this->union_flush();
    return $result;
}

public function union_all() {
    $sql = '(' . implode(') union all (', $this->unions) . ')';
    $result = $this->query($sql);
    $this->union_flush();
    return $result;
}

然后我创建基于 codeigniter 的函数的查询,如下所示

$this->db->select("*");
$this->db->from("media m");
$this->db->join("category c", "m.category_id=c.id", "INNER");
$this->db->order_by("m.media_files", "DESC");
$this->db->limit(3);
$this->db->union_push();
$this->db->select("*");
$this->db->from("media m");
$this->db->join("category c", "m.category_id=c.id", "INNER");
$this->db->order_by("m.media_files", "DESC");
$this->db->limit(3);
$this->db->union_push();
$getMedia = $this->db->union_all();

创建这个

(SELECT * FROM media m INNER JOIN category c ON 
m.category_id = c.id ORDER BY m.media_files DESC LIMIT 3)
UNION ALL
(SELECT * FROM media m INNER JOIN category c ON 
m.category_id = c.id ORDER BY m.media_files DESC LIMIT 3)

现在它正在获取记录,但不正确,我只想使用查询,它显示 6 条记录,第一个查询获取 3 条记录,第二个查询获取 3 条记录,现在记录是重复的我检查记录的 id,它是 6,5,4,再次是 6 ,5,4。也可以通过以下方式完成PHP但我想使用查询。提前致谢


我不知道代码点火器,但基本上你希望它首先进行联合,然后在整个集合上应用顺序。这将需要一个子查询。它应该产生以下 SQL 查询:

select * from
    ((SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id )
    UNION ALL
    (SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id)) T
ORDER BY m.media_files DESC LIMIT 3

希望它对你有一些帮助。

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

使用codeigniter按每个类别的降序获取三个记录 的相关文章

  • 如何为 eclipse PHP 调试设置正确的 URL

    我在使用非标准 URL 在 Eclipse 中设置 PHP 调试时遇到问题 我的应用程序的 URL 必须是http xxx index php http xxx index php 这是我无法轻易改变的 我在设置调试配置来调用此 URL 时
  • 与 6 位随机字母数字代码发生冲突的概率是多少?

    我使用以下 Perl 代码生成随机字母数字字符串 仅限大写字母和数字 用作 MySQL 数据库中记录的唯一标识符 数据库的行数可能会保持在 1 000 000 行以下 但实际的绝对最大值约为 3 000 000 行 我是否有 2 条记录具有
  • 编写 PHP SQL 更新语句的最佳方法

    我有这个 PHP SQL 语句 updateCategory UPDATE category SET name name description description parent parent active active WHERE i
  • 发送邮件时PEAR邮件验证失败

    由于我发现 PHP 中内置的邮件功能存在安全漏洞 因此我尝试使用 PEAR 我已经在本地主机 WAMP 服务器 2 2 上安装并进行了必要的配置 但是 每次我尝试发送电子邮件时 都会显示以下消息 error authentication f
  • php7ts.dll 无法加载到服务器

    今天我已经安装了php7 但是当我重新启动apache时 它无法启动 尽管我再次编辑了httpd xampp conf文件到配置php7 无论如何我去了C xampp并运行apache start bat 然后我看到以下错误 Apache
  • 无法在 PHP shell_exec() 中运行“cd”命令

    我最近在我的大学以太网连接上安装了 Apache 设置的笔记本电脑 现在 只要我有 IP 地址或主机名 我可以选择 我就可以从任何地方连接到我的计算机 现在我想创建一个基于 Web 的命令提示符 让我可以从任何设备在笔记本电脑上运行命令 一
  • 查找关联数组中最小值的键

    在 PHP 中 假设您有一个如下所示的关联数组 pets array cats gt 1 dogs gt 2 fish gt 3 我如何找到具有最低值的密钥 在这里 我要寻找cats 是否有一些我错过的内置 PHP 函数可以实现此目的 如果
  • 在 CentOS 6.5 上升级 PHP(最终版)

    我正在尝试更新我的 PHP 当前 v 5 3 3 到最新的稳定 PHP 版本 但它没有正常运行 并且显示没有任何内容可以更新 任何帮助都会有用的 不断地说 没有标记为更新的软件包 正如 Jacob 提到的 CentOS 软件包存储库目前似乎
  • 通过左连接实现精确分页

    我已经思考这个问题有一段时间了 我认为最好四处询问并听听其他人的想法 我正在构建一个在 Mysql 上存储位置的系统 每个位置都有一个类型 有些位置有多个地址 表格看起来像这样 location location id autoincrem
  • Codeigniter 在助手中获取控制器名称

    我有一个用于记录的自定义助手 在助手的功能之一中 我需要获取被调用的控制器的名称 有办法做到吗 我不能依赖 uri 段 因为一些控制器位于子文件夹中 并且助手被到处使用 您可以在 CI2 x 中使用以下内容 this gt router g
  • 为什么我们要关闭 Mysqli 中的结果

    为什么我们要关闭 result mysqli new mysqli localhost root root test if mysqli gt connect errno echo Failed to connect to MySQL my
  • WooCommerce:在未登录用户的结帐页面中默认设置国家/地区

    如何将国家 地区设为常规 未注册用户 的默认国家 地区 但如果买家有个人账户并进入该国 他在结帐时不会被拖欠吗 我尝试过使用WooCommerce 在结帐页面中默认设置国家 地区 https stackoverflow com questi
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • GhostScript PDF 合并(丢失可编辑字段)

    我正在使用 GhostScript 将 PDF 合并为一个 PDF 其中一份 PDF 具有我在 Adob e Acrobat Pro 9 中创建的文本框字段 可编辑字段 当我使用 GhostScript 合并这两个 PDF 时 我丢失了文本
  • mysql - 有什么方法可以帮助使用另一个索引进行全文搜索?

    假设我有一个 文章 表 其中包含以下列 article text fulltext indexed author id indexed 现在我想搜索特定作者撰写的文章中出现的术语 所以像这样 select from articles whe
  • 如何在SQL中查找单元格中的重复单词

    我有一个名为 situation 和 entityid 的列 Entityid Situation 1234 In the the world of of 3456 Total universe is is a 任何人都可以给我查询以找到这
  • Laravel Valet 不工作。 127.0.0.1 连接被拒绝

    试图让代客泊车设置正常工作 当访问 127 0 0 1 时 连接被拒绝 这是我在访问 dev 站点设置之一时收到的消息 我已经确保 apache 已停止 并且一直在谷歌上搜索所有地方 但无法找到解决方案 有没有人遇到过这个或对下一步尝试什么
  • Php 会话标头已经发送错误[重复]

    这个问题在这里已经有答案了 可能的重复 php 标头已发送错误 https stackoverflow com questions 3319207 php headers already sent error 我已附上我的代码 该代码用于
  • Apache“无法初始化模块”,因为更改 PHP 配置后模块和 PHP 的 API 不匹配

    php v 给出了这个 PHP Warning PHP Startup memcache Unable to initialize module Module compiled with module API 20060613 PHP co
  • exec()、shell_exec()、curl_exec() 的安全漏洞

    有时 我会使用 exec shell exec 和curl exec 以下是典型用途 假设其中有 PHP 变量 即第一个变量中的 html 用户有可能修改其内容 从安全漏洞的角度来看 我应该关注什么 escapeshellcmd 和 esc

随机推荐

  • Python 重定向(有延迟)

    所以我在 Flask 上运行了这个 python 页面 它工作得很好 直到我想要重定向 app route last visit def check last watered templateData template text water
  • JVM 压缩 Oops 背后的技巧

    So I understand the compressed oops is enabled by default in HotSpot VM now It has support for this from Java SE 6u23 on
  • 具有右锚定静态面板的可变高度 FlowLayoutPanel

    Take a good look at this 我有一个顶部面板它停靠在Top我的形式 AutoSize True AutoSizeMode GrowOnly 在里面我有一个流程布局面板停靠到Fill AutoSize True Auto
  • 如何删除 UITabBarItem SelectionImage 填充?

    我通过 UITabBar 外观将 SelectionIndicatorImage 设置为可拉伸图像 以适应各种设备宽度 UIImage selectedImage UIImage imageNamed SelectedTab stretch
  • Netbeans 模块中的 JAXB

    当我尝试在 netbeans 模块中运行 JAXB 编组器时 它们似乎是一个问题 最初我以为这是节点实现 所以我花了几天时间重新组织一切 但我仍然收到奇怪的错误消息 javax xml bind JAXBException ClassCas
  • 替换for循环Python中的字符串元素

    我正在从文本文件中读取数据 因此每一行都是一个字符串列表 所有这些列表都在数据列表中 所以我的列表看起来像 data row1 row2 etc row1 str1 str2 etc 我正在尝试删除行列表中的字符串中出现的任何 或 符号 我
  • LZW解压算法

    我正在为必须实现 LZW 压缩 解压缩的作业编写一个程序 我为此使用以下算法 压缩 w NIL while read a character k if wk exists in the dictionary w wk else add wk
  • 如何将按钮字体设置为 Marlett

    我正在尝试将按钮的字体设置为系统的 Marlett 字体 然而 虽然我手动设置了font face 但使用了其他字体 此外 当我使用字体对话框为该按钮选择字体时 Marlett 未列出 为什么会这样呢 如何在 NET Windows 窗体控
  • 第一个列表滚动在聚合物中结束后,铁滚动阈值永远不会执行

    我已经使用以下方法完成了iron list and iron scroll threshold为了在聚合物中实现无限滚动 但问题是 loadMoreDatairon scroll threshold在聚合物中第一个列表滚动结束后永远不会执行
  • Symfony 使用哪个单元测试框架?

    Symfony 使用哪个单元测试框架 Lime 还是 PHPUnit 使用它们有什么优点和缺点 在我看来 以下是我想到的一些事情 PHPUnit is more integrated with other tools like for in
  • MonoFoldable 有什么损失吗?

    单折叠 https hackage haskell org package mono traversable 1 0 0 1 docs Data MonoTraversable html t MonoFoldable in the 单通行
  • Laravel 5 MethodNotAllowedHttpException PUT

    我正在尝试更新用户 但是当我点击提交按钮时 Laravel 抛出以下错误 RouteCollection gt methodNotAllowed array GET HEAD POST 在 RouteCollection php 第 206
  • 开玩笑嘲笑参考错误

    我正在尝试使用以下模拟 const mockLogger jest fn jest mock myLoggerFactory gt type gt mockLogger 但是mockLogger会抛出引用错误 我知道笑话试图保护我免于超出模
  • 使用 jquery 禁用提交按钮

    我想在单击表单中的提交按钮后禁用它 以限制用户一次又一次地单击它 我用 jquery 尝试了这个 form submit function var formId this id if formId formId input type sub
  • 通过 PhpStorm 中的 Docker 容器使用 xdebug

    我读过一些关于此的文章 但没有一个对我的案例有帮助 或者只是忽略了缺失的部分 我无法使用 Docker 容器让 xdebug 在 PhpStorm 上工作 Docker compose yml version 2 services web
  • LEFT JOIN ON Google BigQuery 中的最近日期

    我有两个表 都有时间戳和更多数据 Table A name timestamp a data 1 2018 01 01 11 10 00 a 2 2018 01 01 12 20 00 b 3 2018 01 01 13 30 00 c T
  • Objective C 中的友元类

    我正在将 cpp 代码移植到 Objective C 中 In cpp我们可以添加一个类friend class到另一个类并使用其所有公共函数和变量 我知道Objective C does not support friend class概
  • 将 *ngFor 用于带有嵌套数组的 JSON 对象

    我有一个 JSON 对象 它具有多个级别的嵌套对象以及嵌套的对象数组 我想知道如何使用 Angular2 和 ngFor 迭代对象并最终打印出列出的内容 第一个 ngFor 有效 但下一个 ngFor 给我错误提示Cannot read p
  • 在 SQLite3 中插入​​和返回自动身份

    当我向数据库中插入一行时 我试图找出获取最后一个 ID 的最佳方法 它是一个基本库 它将异常和程序状态数据记录到 SQLite 数据库中 使用System Data SQLite 该库可以从控制台应用程序 表单应用程序 网站 服务 单线程
  • 使用codeigniter按每个类别的降序获取三个记录

    我有两个类别 我想获取每个类别的三个记录 后来我找到了这个链接使用 Codeigniter 活动记录模式进行 UNION 查询 https stackoverflow com questions 2040655 union query wi