加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在Codeigniter中计算由distinct()或group_by()过滤的结果

发布时间:2020-12-13 21:47:55 所属栏目:PHP教程 来源:网络整理
导读:我想用CI计算我的活动记录查询结果(使用postgreSQL).我使用的是count_all_results(),它适用于大多数查询,但在连接后使用distinct()或group_by()时则不行,因为count_all_results()会忽略这些函数. 这是一个修复版本,它尚未在newsest(2.1.3)稳定版本中实现. ht
我想用CI计算我的活动记录查询结果(使用postgreSQL).我使用的是count_all_results(),它适用于大多数查询,但在连接后使用distinct()或group_by()时则不行,因为count_all_results()会忽略这些函数.

这是一个修复版本,它尚未在newsest(2.1.3)稳定版本中实现.
https://github.com/EllisLab/CodeIgniter/commit/b05f506daba5dc954fc8bcae76b4a5f97a7433c1

当我尝试在当前版本中尝试实现此修复时,没有进行额外的过滤.行数保持不变.

有关如何在当前版本中实现此功能的任何提示,或其他计算由distinct()或group_by()过滤的结果的方法?

解决方法

$this->db->select('COUNT(id)');
    $this->db->join();
    $this->db->distinct();
    $this->db->group_by();
//...etc ...
    $query = $this->db->get('mytable');

    return count($query->result());

要么

$this->db->join();
    $this->db->distinct();
    $this->db->group_by();
//...etc ...
    $query = $this->db->get('mytable');

    return $query->num_rows();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读