如何構建使用這些條件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' => '')
)
)
)
)));