gpt4 book ai didi

mysql - QueryBuilder 和子条件

转载 作者:可可西里 更新时间:2023-11-01 08:29:54 26 4
gpt4 key购买 nike

您好,我正在尝试使用 QueryBuilderQuery\Expr 构建查询。我的问题是构建子条件,以便获得所有这些条件的模型列表?

  • Statustrue 且不在 model name 列表中
  • Statusfalse 且不在其他 model name 列表中

代码:

public function process(QueryBuilder $qb)
{
$cond1 = new Expr\Andx;
$cond1->add($qb->expr()->eq('status', 0);
$cond2= new Expr\Andx;
$cond2->add($qb->expr()->notIn('model', array('308','408'));
$cond1->add($cond2);

$cond3 = new Expr\Andx;
$cond3->add($qb->expr()->eq('status', 1);
$cond4= new Expr\Andx;
$cond4->add($qb->expr()->notIn('model', array('A1','A2'));
$cond3->add($cond4);

$qb->andWhere($cond1);
$qb->andWhere($cond3);
}

类模型

Class Vehicle{
/**
* @var string
*
* @ORM\Column(name="model", type="string", length=255, nullable=true)
*/
private $modele;

/**
* @var string
*
* @ORM\Column(name="make", type="string", length=255, nullable=true)
*/
private $make;

/**
* @var boolean (status for vehicule 1 = Used vehicle)
*
* @ORM\Column(name="status", type="boolean")
* @Serializer\Groups({"list", "details"})
*/
private $status;

//-- Other properties, getter & setter

}

感谢帮助

最佳答案

$qb->andWhere(
$qb->expr()->andx(
$qb->expr()->andx(
$qb->expr()->eq('status', 0),
$qb->expr()->andx(
$qb->expr()->notLike('model', '308'),
$qb->expr()->notLike('model', '408')
)
),
$qb->expr()->andx(
$qb->expr()->eq('status', 1),
$qb->expr()->andx(
$qb->expr()->notLike('model', 'A1'),
$qb->expr()->notLike('model', 'A2')
)
)
)
);

只要阅读docs,您就可以尽情使用嵌套表达式了。

如果您需要帮助,请告诉我:)

关于mysql - QueryBuilder 和子条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939281/

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