我正在尝试创建以下语句(有效):
SELECT id, COUNT(*) AS item_count FROM message WHERE user_id_to = '1' AND read_date IS NULL GROUP BY message_id
带有Codeigniters Active Record。我的代码如下所示:
$this->db->select('id');
$this->db->from('message');
$this->db->where('user_id_to', $this->session->userdata('id'));
$this->db->where(array('read_date' => NULL));
$this->db->group_by('message_id');
echo $this->db->count_all_results();
我已经检查过,所以$ this-> session-> userdata('id')输出的ID与我的“常规” SQL语句相同,并且它是正确的。
奇怪的是我的“常规”语句返回2,这是正确的。但是我的Codeigniter statmenet返回3,这显然是错误的。
我究竟做错了什么?
count_all_results()
将替换整个SELECT子句,产生的查询将是这样的:
SELECT COUNT(*) AS numrows
FROM message
WHERE user_id_to = <your value> AND read_date IS NULL
GROUP BY message_id
...我当然会跳过任何括号和转义字符,但是在这里它们无关紧要。
只需将整个内容放入select()
通话中即可:
$this->db->select('id, COUNT(*) as item_count');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句