mysql order by,先为null,后为DESC
Posted
技术标签:
【中文标题】mysql order by,先为null,后为DESC【英文标题】:mysql order by, null first, and DESC after 【发布时间】:2012-03-07 15:13:54 【问题描述】:如何按字段排序 DESC,但先列出 NULL 值?
所以我有一张桌子:
reuestId | offerId | offerTitle
1 | 1 | Alfa
NULL | 2 | Beta
2 | 3 | Gamma
我想选择它们,结果是:
NULL | 2 | Beta
2 | 3 | Gamma
1 | 1 | Alfa
【问题讨论】:
【参考方案1】:试试这个:
ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC
应该可以工作(对于 mysql)
【讨论】:
或子查询到类别【参考方案2】:SELECT *
FROM TableX
ORDER BY (requestId IS NOT NULL)
, requestId DESC
【讨论】:
我认为这个答案与第一个相反? @xi.lin: 不,第一个把IS NULL
(本质上是一个返回1或0的函数)按DESC顺序,这个把IS NOT NULL
按升序排列。它们是等价的。
@BlueRaja-DannyPflughoeft 感谢您的解释!我只是错误地认为 IS NULL 是一个过滤器而不是一个函数。以上是关于mysql order by,先为null,后为DESC的主要内容,如果未能解决你的问题,请参考以下文章