Doctrine orm 按字段排序的条令不为空

Doctrine orm 按字段排序的条令不为空,doctrine-orm,doctrine,Doctrine Orm,Doctrine,我需要创建一个类似条令的查询: select * from table order by if(myfield <> '',1,0), othercolumn ASC 从表中选择* 按if排序(myfield“”,1,0),其他列ASC 简而言之,字段不为空的order by列显示为第一个结果 在我的代码中,我使用ZF2: $qb = $myrepository->createQueryBuilder( 's' ); $qb->addOrderBy( 'if(s.my

我需要创建一个类似条令的查询:

select * from table
order by if(myfield <> '',1,0), othercolumn ASC
从表中选择*
按if排序(myfield“”,1,0),其他列ASC
简而言之,字段不为空的order by列显示为第一个结果

在我的代码中,我使用ZF2:

$qb = $myrepository->createQueryBuilder( 's' );
$qb->addOrderBy( 'if(s.myfield  <> \'\', 0, 1)' );
$qb->addOrderBy( 's.othercolumn', 'ASC' );
$query = $qb->getQuery();
$myresults = $query->getResult();
$qb=$myrepository->createQueryBuilder('s');
$qb->addOrderBy('if(s.myfield\'\',0,1)');
$qb->addOrderBy('s.othercolumn','ASC');
$query=$qb->getQuery();
$myresults=$query->getResult();
显然,上面的代码返回了一个语法错误


提前感谢

看看这个老问题也许你可以使用条令扩展来完成这类工作看看这个老问题也许你可以使用条令扩展来完成这类工作