2013-11-23 55 views
3

我正在使用必须使用遗留数据库的Symfony 2/Doctrine项目。我从现有的数据库创建了一个Doctrine 2实体,通常工作得很好。但我似乎无法得到一个案例的工作:有一些数据库条目有空字段(不是NULL,只是空的),我想通过一个Doctrine查询选择。学说2选择空字段

$em = $this->getDoctrine()->getManager(); 
$query = $em->createQuery(
    'SELECT p FROM dtrcmsBundle:Page p WHERE p.articleName = :pageName' 
)->setParameter('pageName', ''); 

剂量似乎没有工作。任何想法如何选择空的领域?

回答

2

由于空字符串小于任何字符(我可能是错误的),所以我们可以比较字符编码方案中的最低字符'0'。以下示例显示了我的意思。

$em = $this->getDoctrine()->getManager(); 
    $query = $em->createQuery(
    'SELECT p FROM dtrcmsBundle:Page p WHERE p.articleName < :pageName' 
)->setParameter('pageName', '0'); 
+0

工作得很好!谢谢您的帮助! – wowpatrick

+0

完成一些更多测试。不幸的是,似乎在所有情况下都不起作用。会做更多的测试。 – wowpatrick

+1

只需做一些小改动就可以了:不用'a',而应该用'0'。当使用'a'时,您也会得到不是空的条目,但是该字段以数字开头。 – wowpatrick