Php 如果没有行匹配,codeiniter中的Group by在计数中返回零
我希望如果状态2或状态3没有行匹配,则两个状态都将返回零,或者在纯T-SQL中没有匹配的状态将返回零:Php 如果没有行匹配,codeiniter中的Group by在计数中返回零,php,sql,codeigniter,Php,Sql,Codeigniter,我希望如果状态2或状态3没有行匹配,则两个状态都将返回零,或者在纯T-SQL中没有匹配的状态将返回零: $this->db->select('COUNT(status) as status_count, status'); $this->db->where('u_id', $u_id); $this->db->where_in('status', ['2', '3']); $this->db->group_by('statu
$this->db->select('COUNT(status) as status_count, status');
$this->db->where('u_id', $u_id);
$this->db->where_in('status', ['2', '3']);
$this->db->group_by('status');
$q = $this->db->get('retail_lead');
return $q->result();
请试试这个
WITH STATUSES AS (
SELECT 2 AS Status
UNION ALL
SELECT 3),
COUNTS AS (
SELECT COUNT(1) as status_count, status
FROM MYTABLE
GROUP BY status
WHERE u_id = @u_id
)
SELECT S.Status, ISNULL(C.status_count, 0) AS status_count
FROM STATUSES AS S
LEFT JOIN COUNTS C
ON S.Status = C.status
这不是我要问的,你可以简单地返回
0
,而不是返回false
$this->db->select('COUNT(status) as status_count, status');
$this->db->where('u_id', $u_id);
$this->db->where_in('status', ['2', '3']);
$this->db->group_by('status');
$q = $this->db->get('retail_lead');
if($q->num_rows() > 0){
return $q->result_array();
} else {
return 0;
}