如何使用querybuilder在学说 2 的 WHERE 子句中使用 IN
如何使用 querybuilder 在学说中转换以下 sql?
SELECT fooid FROM foo WHERE bar IN ('A','C');
如何使用querybuilder在学说 2 的 WHERE 子句中使用 IN
如何使用 querybuilder 在学说中转换以下 sql?
SELECT fooid FROM foo WHERE bar IN ('A','C');
所有内容都包含在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'));
它也可以写成
$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'));