gpt4 book ai didi

php - 如何在cakephp中的另一个条件中使用条件

转载 作者:行者123 更新时间:2023-11-29 10:53:17 25 4
gpt4 key购买 nike

我有一个字段答案。另外,我有两个 id,即男性和女性 id 字段名称为 ca_field_id 在另一个表中。

我的要求是我想获取符合以下条件的数据

  1. 具有男性 (id=37) 和女性 (id=38) 的 ID
  2. 男性年龄67
  3. 女性年龄65

但我正在获取 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 条件。但在每一个内部,这两个条件都需要满足。

它可能不完全正确,但是这些应该可以让您了解如何完成它。 (只是从我的脑海中消失)。

关于php - 如何在cakephp中的另一个条件中使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com