题
使用CodeIgniter的Active Record类和MySQL,我有一个包含 user_id
和其他各种字段的帖子表,我想计算每个用户发了多少帖子。我可以获取 user_id = $ whatever
的行并计算结果数,但是我必须循环遍历每个 user_id
并使用 count_all_results()
一遍又一遍地查询每一个。
一定有更好的方法!如果每个字段中都有一个带有 1
的字段,我可以 select_sum
向上该字段并获得计数。但这似乎很愚蠢。
非常感谢提前!
解决方案
使用有效记录应为:
$this->db->select('field1, ... ,fieldn, count(1) as number_elements_of_row');
$this->db->group_by(array('field_group_1', ... ,'field_group_n'));
$result = $this->db->get('mytable');
所以 $ result
将满足您的需求!
不隶属于 StackOverflow