[英]How to use condition inside another condition in cakephp
我有一個答案。 我也有兩個ID,即男人和女人的ID字段在另一個表中的名稱為ca_field_id
。
我的要求是我要在以下條件下獲取數據
但是我得到的數據都是67歲的男性和67歲的女性,反之亦然。
用下面的查詢:
$numberofemployeesmen = 37;
$numberofemployeeswomen =38;
$caanswer = $this->CaAnswer->find('all',
array(
'conditions' => array(
'CaAnswer.ca_field_id' => array($numberofemployeesmen,$numberofemployeeswomen),
'CaAnswer.answer' => array(67,65)
)
)
);
我也嘗試了如下但沒有用
$numberofemployeesmen = 37;
$numberofemployeeswomen =38;
$caanswer = $this->CaAnswer->find('all',
array('conditions' => array(
'CaAnswer.ca_field_id' => array($numberofemployeesmen,$numberofemployeeswomen),
'CaAnswer.answer'=> array(
67 AND array('CaAnswer.ca_field_id' =>$numberofemployeesmen),
65 AND array('CaAnswer.ca_field_id'=>$numberofemployeeswomen))
)
)
);
請告訴我我該如何解決...
嘗試這個:
$numberofemployeesmen = 37;
$numberofemployeeswomen = 38;
$caanswer = $this->CaAnswer->find('all',
[
'conditions' => [
'OR' => [
[
'CaAnswer.ca_field_id' => $numberofemployeesmen,
'CaAnswer.answer' => 67
],
[
'CaAnswer.ca_field_id' => $numberofemployeeswomen,
'CaAnswer.answer' => 65
],
]
]
]
);
如果這不起作用,則可能需要在OR
內添加其他AND
鍵:
$caanswer = $this->CaAnswer->find('all',
[
'conditions' => [
'OR' => [
[
'AND' => [
'CaAnswer.ca_field_id' => $numberofemployeesmen,
'CaAnswer.answer' => 67
],
],
[
'AND' => [
'CaAnswer.ca_field_id' => $numberofemployeeswomen,
'CaAnswer.answer' => 65
],
],
]
]
]
);
請注意,在此示例中, AND
位於其自己的數組內,因此第二個AND
鍵不會覆蓋第一個。
想法是,您說的是我要第一組AND條件或第二組AND條件。 但是在每個方面,兩個條件都需要滿足。
可能不完全正確,但是這些應該可以讓您了解如何完成此操作。 (就從我頭頂上跳下來)。
你有沒有嘗試過
$caanswer = $this->CaAnswer->find('all',
array('conditions' => array(
'CaAnswer.ca_field_id' => array($numberofemployeesmen,$numberofemployeeswomen),
'CaAnswer.answer'=> array(
67 AND array('CaAnswer.ca_field_id' =>0),
65 AND array('CaAnswer.ca_field_id'=>1))
)
)
);
如果我沒記錯的話,array($ numberofemployeesmen,$ numberofemployeeswomen)創建一個像這樣的數組0 => $ numberofemployeesmen 1 => $ numberofemployeeswomen
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.