Нужна помощь с запросом MySQL - PullRequest
1 голос
/ 05 декабря 2010

Возможно ли редактировать запрос ниже:

SELECT *
FROM t1    
ORDER BY CASE
    WHEN projects_status = 'active'  THEN 1
    WHEN projects_status = 'expired' THEN 2
    WHEN projects_status = 'closed'  THEN 3
    END 

для получения результатов в следующем порядке сортировки:

  • Активные проекты_статус ASC
  • Истек срок действия projects_status DESC
  • Закрытые проекты_статус DESC

1 Ответ

1 голос
/ 05 декабря 2010

Сравнение вернет 0 или 1, где 0 обычно сортируется перед 1. Поэтому, когда вы говорите ASC, вы, вероятно, хотите, чтобы он возвращал строки, где это true (1) сверху. Поэтому в этом случае вам нужно использовать DESC.

ORDER BY
projects_status = 'active' DESC,
projects_status = 'expired' ASC,
projects_status = 'closed' ASC
...