【问题标题】:Add OR clause in AND clause in SF2 queryBuilder在 SF2 queryBuilder 的 AND 子句中添加 OR 子句
【发布时间】:2015-04-12 19:14:31
【问题描述】:

我想在 SF2 查询生成器中执行类似的请求:

SELECT *
FROM `annonce` a 
LEFT JOIN `ville` v ON a.ville_id=v.id 
WHERE a.titre LIKE '%s%' AND (v.cp LIKE '94%' OR v.nomComplet='alf%')

但我不知道如何在 AND 子句中包含 OR 子句。目前我有:

$qb = $this->createQueryBuilder('a')
                ->select('a')
                ->leftJoin('a.ville', 'v');
        $qb->where($qb->expr()->like('a.titre', ':titre'))
                ->andWhere($qb->expr()->like('v.cp', ':lieu'))
                ->OrWhere($qb->expr()->like('v.nomComplet', ':lieu'))
                ->setParameter('titre', '%' . $item . '%')
                ->setParameter('lieu', $lieu . '%')
                ->getQuery()
                ->getResult();

但这不是正确的实现。我需要在 AndWhere 中有 OrWhere

感谢您的帮助

【问题讨论】:

    标签: php sql symfony query-builder


    【解决方案1】:

    你要找的是orX condition

    $qb->expr()->andWhere(
        $qb->expr()->orX(
            $qb->expr()->like('v.cp', ':lieu'),
            $qb->expr()->like('v.nomComplet', ':lieu')
        )
    )
    

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2021-02-02
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多