Correct detect count records in SQlCriteria with use group by
This commit is contained in:
@ -82,14 +82,7 @@ class SqlCriteria
|
||||
public function count()
|
||||
{
|
||||
$this->defineJoinExpressions();
|
||||
$sql_expression_backup = $this->sql_expression;
|
||||
if ($this->sql_expression && !strstr('COUNT(*)', $this->sql_expression)) {
|
||||
$this->sql_expression = preg_replace('#^SELECT .+ FROM#', 'SELECT COUNT(*) as count FROM', $this->sql_expression);
|
||||
} else {
|
||||
$this->sql_expression = 'SELECT COUNT(*) as count FROM :table';
|
||||
}
|
||||
$count = $this->model->find(array(), '', $this->where, null, null, null, null, $this->sql_expression, $this->sql_expression_params)->fetchField('count');
|
||||
$this->sql_expression = $sql_expression_backup;
|
||||
$count = $this->model->count(array(), '', $this->where, null, $this->group_by, $this->sql_expression, $this->sql_expression_params)->fetchField('count');
|
||||
return $count;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user