Doctrine SQL 按 ASC NULL 最后查询顺序
Doctrine SQL Query Order By ASC NULL Last
我使用 Doctrine 2.4。我尝试按优先级升序排列我的活动列表,优先级为 NULL,最后优先级为 0。
SELECT * FROM campaign ORDER BY priority IS NULL, priority = 0, priority ASC
你知道我该怎么做吗?
$query->addOrderBy('c.priority', 'ASC');
order by case when priority is null then 1 else 0 end, priority
我找到了解决方案,我做到了:
$query->addSelect('CASE WHEN c.priority IS NULL THEN 1 ELSE 0 END as HIDDEN priority_is_null');
$query->addSelect('CASE WHEN c.priority = 0 THEN 1 ELSE 0 END as HIDDEN priority_is_zero');
$query->addOrderBy('priority_is_null', 'ASC');
$query->addOrderBy('priority_is_zero', 'ASC');
$query->addOrderBy('c.priority', 'ASC');
我使用 Doctrine 2.4。我尝试按优先级升序排列我的活动列表,优先级为 NULL,最后优先级为 0。
SELECT * FROM campaign ORDER BY priority IS NULL, priority = 0, priority ASC
你知道我该怎么做吗?
$query->addOrderBy('c.priority', 'ASC');
order by case when priority is null then 1 else 0 end, priority
我找到了解决方案,我做到了:
$query->addSelect('CASE WHEN c.priority IS NULL THEN 1 ELSE 0 END as HIDDEN priority_is_null');
$query->addSelect('CASE WHEN c.priority = 0 THEN 1 ELSE 0 END as HIDDEN priority_is_zero');
$query->addOrderBy('priority_is_null', 'ASC');
$query->addOrderBy('priority_is_zero', 'ASC');
$query->addOrderBy('c.priority', 'ASC');