feiying0193 发表于 2011-3-16 21:36:05

谁遇见这种情况没?当count_all_results遇见group_by

本帖最后由 feiying0193 于 2011-3-16 21:49 编辑

当count_all_results遇见group_by

PHP代码:

$this->db->group_by('row');
$num_rows = $this->db->count_all_results('table');



执行的语句是:


SELECT COUNT(*) AS `numrows` FROM (`table`) GROUP BY `row`



不管怎么弄,结果肯定和预计的不一样。

比如row的结果可能就是

1
1
2
3
1
5
1

而实际结果是:7
上面数字的行数。
用count_all_results的结果就是1,第一行的数据
有谁遇见这种情况?该怎么解决?

要是没有解决办法,那只有用

$this->db->group_by('row');
$query=$this->db->get('table');
$query->num_rows();

来解决了。

tiana 发表于 2011-3-16 22:23:36

组群,那就是取回结果集,而不是行吧。是不是用错方法了

$result = $query->result();
foreach( $result as $row)
$row->numrows;

feiying0193 发表于 2011-5-1 10:15:42

count_all_results取得的结果是搜索数据库后的行数,得到的结果应该是一个数值。
而group_by()的结果是按字段合计行数,即得到各个相同字段的数量。
count_all_results和group_by()合起来用的话得到的结果就不是一个数值,而是一个array()了。
所以在CodeIgniter中count_all_results的Active Record限制函数中应该不能适应group_by()函数。
页: [1]
查看完整版本: 谁遇见这种情况没?当count_all_results遇见group_by