[英]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.