查询:
SELECT * from Entlehnungen
WHERE status = 'retour'
GROUP BY proben_id
ORDER BY proben_id DESC, id DESC 在蛋糕中,我创建了以下代码
unset($this->request->params['named']['sort']);
$this->Paginator->settings['Entlehnungen'] = array(
'limit' => 500,
'order' => array('Entlehnungen.proben_id' => 'DESC',
'Entlehnungen.id' => 'DESC'),
'group' => array('Entlehnungen.proben_id')
);
$entlehnungens = $this->paginate(null, $conditions);问题是,看起来order by不能工作。
发布于 2015-03-03 02:00:24
我的问题在这里:
GROUP BY proben_id ORDER BY proben_id DESC, id DESC
如果按一个字段分组,这意味着大多数字段都是随机选择的。
所以如果你有像这样的数据
proben_id : id
1 : 1
2 : 2
1 : 3
2 : 4查询的结果为:
proben_id : id
1 : 1
2 : 2所以你不能按id排序,
所以如果你只有一个分组字段,那么
ORDER BY proben_id DESC, id DESC 等于 ORDER BY proben_id DESC
因为在proben_id之后没有什么需要订购的--每个唯一的proben_id只有1行
要获得第二级排序,您需要包括id字段作为分组字段:
GROUP BY proben_id, id ORDER BY proben_id DESC, id DESC
php代码应该是这样的:
$this->Paginator->settings['Entlehnungen'] = array(
'limit' => 500,
'group' => array('Entlehnungen.proben_id','Entlehnungen.id'),
'order' => array('Entlehnungen.proben_id' => 'DESC',
'Entlehnungen.id' => 'DESC')
);发布于 2015-03-04 01:13:17
尝尝这个
'order' => array('Entlehnungen.proben_id DESC','Entlehnungen.idDESC'),https://stackoverflow.com/questions/28810388
复制相似问题