You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:将MySQL统计查询语句转换为Codeigniter查询语句

转换为CodeIgniter查询语句的实现方案

嘿,既然你已经熟悉SQL语法,把这条查询转成CodeIgniter的写法其实非常直观~下面分不同版本给你两种常用的实现方式,优先推荐Query Builder(框架自带的查询构造器),因为它能帮你自动处理SQL转义,更安全:

CodeIgniter 3 实现方式

简洁版(推荐)

直接用count_all_results方法一步到位:

// 在控制器或模型中使用
$runningCount = $this->db->where('status', 'Runing')->count_all_results('job_progress');

显式SELECT版

如果需要更明确的字段别名,也可以这么写:

$this->db->select('COUNT(*) as running_count');
$this->db->from('job_progress');
$this->db->where('status', 'Runing');
$query = $this->db->get();
// 获取结果
$result = $query->row();
$runningCount = $result->running_count;

CodeIgniter 4 实现方式

简洁版(推荐)

CI4的查询构造器用法更流畅:

// 先连接数据库(如果在模型中可以直接用$this->db)
$db = \Config\Database::connect();
$runningCount = $db->table('job_progress')->where('status', 'Runing')->countAllResults();

显式SELECT版

同样支持自定义字段别名的写法:

$db = \Config\Database::connect();
$query = $db->table('job_progress')
            ->select('COUNT(*) as running_count')
            ->where('status', 'Runing')
            ->get();
// 获取单行结果
$result = $query->getRow();
$runningCount = $result->running_count;

原生查询方式(不推荐,除非特殊场景)

如果你更习惯直接写原生SQL,也可以这么执行:

CI3 原生写法

$query = $this->db->query("SELECT COUNT(*) FROM `job_progress` WHERE status='Runing'");
// 获取结果值
$runningCount = $query->row_array()[0];

CI4 原生写法

$db = \Config\Database::connect();
$query = $db->query("SELECT COUNT(*) FROM `job_progress` WHERE status='Runing'");
$runningCount = $query->getRowArray()[0];

内容的提问来源于stack exchange,提问作者Azmath Ullah Rakib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:07:43