我正在使用 Doctrine ORM 在 symfony 1.4 中开发。我无法使用带有 id 的数组创建 NOT IN where 子句。这是我的代码:
$results = Doctrine_Query::create()
->from('Asset a')
->where('a.id NOT IN (?)', implode(',', $ids))
->execute();
生成的这个查询的 sql 是这个:
WHERE (a.id NOT IN ('1,5,6,7,8,9,10,11,12,13,14,15,17,18,20,24,25,26,29,30,28'))
如您所见,将填充有 id 的数组视为字符串。我也试过没有数组的内爆,但我得到了这个错误:
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
包含排除 id 的数组 $ids 是一个纯数字。
我不知道这个子句的正确语法是什么。谢谢