我如何使用Doctrine获取列不在(值数组)中的每一行?

我如何使用Doctrine获取列不在(值数组)中的每一行?,doctrine,doctrine-orm,entitymanager,Doctrine,Doctrine Orm,Entitymanager,我正在尝试实现类似于下面SQL的功能,但使用的是Doctrine API SELECT * FROM table_name WHERE column_name NOT IN (1, 2, 3); 我在想这样的事情: $entityManager->getRepository($entity)->findBy(array('ID' => array('NOT IN' => array(1, 2, 3)))); 。。。我有多远?您可以使用DQL执行此操作: $result

我正在尝试实现类似于下面SQL的功能,但使用的是Doctrine API

SELECT * FROM table_name WHERE column_name NOT IN (1, 2, 3);
我在想这样的事情:

$entityManager->getRepository($entity)->findBy(array('ID' => array('NOT IN' => array(1, 2, 3))));

。。。我有多远?

您可以使用DQL执行此操作:

$result = $entityManager->createQuery("SELECT e FROM $entity e 
        WHERE e.ID NOT IN (:ids)")
    ->setParameter('ids', array(1, 2, 3), \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
    ->getResult();
自2.1版以来,支持将数组作为参数传递