0

如何使用querybuilder在学说 2 的 WHERE 子句中使用 IN

如何使用 querybuilder 在学说中转换以下 sql?

SELECT fooid FROM foo WHERE bar IN ('A','C');
4

2 回答 2

0

所有内容都包含在Doctrine 文档中。

假设$qb是您的查询生成器:

$qb->add('select', new Doctrine\ORM\Query\Expr\Select(array('Foo.fooid')))
    ->add('from', new Doctrine\ORM\Query\Expr\From('Foo'))
    ->add('where', $qb->expr()->in('Foo.bar', '?1'))
    ->setParameter(1, array('A', 'C'));
于 2013-10-15T17:52:12.793 回答
0

它也可以写成

$qb->select('Foo.fooid')
           ->from('Foo')
           ->where($qb->expr()->in('Foo.bar', '?1'))      
           ->setParameters(array(1 => array('A', 'C')));   

或者像上面提到的纪尧姆

$qb = $objectManager->createQueryBuilder();
$qb->add('select', new \Doctrine\ORM\Query\Expr\Select(array('Foo.fooid')))
        ->add('from', new \Doctrine\ORM\Query\Expr\From('Foo'))
        ->add('where', $qb->expr()->in('Foo.bar', '?1'))
        ->setParameter(1, array('A', 'C'));
于 2013-10-16T15:12:56.850 回答