CakePHP SQL转换-基本顺序依据
我有一个表,我想先得到所有等于26的id,然后让其余的按降序排序,比如:CakePHP SQL转换-基本顺序依据,php,mysql,sql,cakephp,find,Php,Mysql,Sql,Cakephp,Find,我有一个表,我想先得到所有等于26的id,然后让其余的按降序排序,比如: row id --- -- 1 26 2 26 3 26 4 27 5 25 6 24 通常会导致: select id from table order by id=26 desc, id desc 如何在Cake中构造find()?我想是这样的: $this->Model->find('all', array( 'co
row id
--- --
1 26
2 26
3 26
4 27
5 25
6 24
通常会导致:
select id
from table
order by id=26 desc, id desc
如何在Cake中构造find()
?我想是这样的:
$this->Model->find('all', array(
'conditions' => array('Model.id' => 26),
'order' => array('Model.id' => 'DESC')
));
但我应该如何告诉Cake检索其余的id,并在检索到所有等于26的id后按降序对它们进行排序 假设您的
id
字段是CakePHP约定定义的primaryKey,那么您的查询将只返回一个结果。因此,订购在这里不相关
我还建议使用find('first')
来防止得到一个数字索引的结果
$this->Model->find('first',array('conditions'=>array('id'=>$id))代码>
如果您想返回这一条记录,然后返回所有其他记录,我会使用find('all')
来反转它
$this->Model->find('all',array('conditions'=>array('id!='=>$id))代码>试试这个
$this->Model->find('all', array(
'order' => array('Model.id = 26 DESC' , 'Model.id DESC')
));
array('Model.id'DESC)
无效。你的IDE应该告诉你这一点。刚刚编辑过,忘了配对。