Доктрина SQL Порядок запросов по ASC NULL Последний - PullRequest
2 голосов
/ 13 марта 2019

Я использую Доктрина 2.4 .И я пытаюсь упорядочить свой список кампаний по приоритету по возрастанию с приоритетом NULL и приоритетом до 0.

SELECT * FROM campaign ORDER BY priority IS NULL, priority = 0, priority ASC

У вас есть идея, как я могу это сделать?

$query->addOrderBy('c.priority', 'ASC');

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Я нашел решение, я сделал это:

$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');
1 голос
/ 13 марта 2019
order by case when priority is null then 1 else 0 end, priority
...