如何使用查询生成器在WHERE子句doctrine 2中使用IN

时间:2013-10-15 17:46:06

标签: doctrine-orm

如何使用querybuilder

在doctrine 2中的WHERE子句中使用IN

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

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

2 个答案:

答案 0 :(得分:0)

全部包含在Doctrine documentation

假设$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'));

答案 1 :(得分:0)

也可以使用

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

或上面提到的Guillaume

$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'));