如何构建使用这些条件find()方法在CakePHP查询:CakePHP的复杂的查找查询
Find where
MyModel.x = 1 and MyModel.y = 2 OR
MyModel.x = 1 and MyModel.y value does not exist (or is equal to empty string)
有人能告诉我,我该怎么去建立这样查找查询?
如何构建使用这些条件find()方法在CakePHP查询:CakePHP的复杂的查找查询
Find where
MyModel.x = 1 and MyModel.y = 2 OR
MyModel.x = 1 and MyModel.y value does not exist (or is equal to empty string)
有人能告诉我,我该怎么去建立这样查找查询?
我会给你一些指示,但你需要尝试做到这一点,因为它是非常基础的,它总是很好的练习。
在蛋糕的基本发现是在
$this->ModelName->find('all');
这在其默认窗体形式做了SELECT * from model_names
(惯例是有奇异MODELNAME为复数表名 - model_names
)
要添加条件:
$this->ModelName->find('all', array('conditions' => array('ModelName.x' => 1));
添加和条件
$this->ModelName->find('all', array('conditions' => array(
'ModelName.x' => 1, 'ModelName.y' => 2
));
添加或条件
$this->ModelName->find('all', array('conditions' => array(
'OR' => array(
'ModelName.x' => 1, 'ModelName.y' => 2
)
));
融合两家
$this->ModelName->find('all', array('conditions' => array(
'ModelName.y is not' => null,
'OR' => array(
'ModelName.x' => 1, 'ModelName.y' => 2
)
));
// where y is not null and (x = 1 or y = 2)
http://book.cakephp.org/1.3/view/1030/Complex-Find-Conditions
(顺便说一句,我肯定会有用户给你确切的答案,所以只取我的回答供你参考:))
$this->MyModel->find('all', array('conditions' => array(
'OR' => array(
array(
'MyModel.x' => 1,
'MyModel.y' => 1
),
array(
'MyModle.x' => 1,
'OR' => array(
array('MyModel.y' => NULL),
array('MyModel.y' => '')
)
)
)
)));