MySQL 条件排序
Posted
技术标签:
【中文标题】MySQL 条件排序【英文标题】:MySQL Conditional Ordering 【发布时间】:2014-06-25 03:26:15 【问题描述】:这样排序可以吗?
未分类
TIMEIN TIMEOUT
null 6/19/2014 12:00:00
6/19/2014 08:30:00 6/19/2014 10:30:00
6/19/2014 13:00:00 null
6/19/2014 19:06:00 6/19/2014 20:36:00
排序
TIMEIN TIMEOUT
6/19/2014 08:30:00 6/19/2014 10:30:00
null 6/19/2014 12:00:00
6/19/2014 13:00:00 null
6/19/2014 19:06:00 6/19/2014 20:36:00
列表按 TIMEIN 降序排列。如果 TIMEIN 为 NULL,则 TIMEOUT 将作为排序的基础,无需重新排序 'TIMEIN desc'。
【问题讨论】:
你的意思是像BY IFNULL(timein, timeout)
?
【参考方案1】:
ORDER BY IFNULL(TIMEIN, TIMEOUT) DESC
【讨论】:
成功了!我会在 5 分钟后将此标记为答案。【参考方案2】:在 mysql 中有一个名为 COALESCE
的便捷函数,您可以直接放入 ORDER BY
子句中。
Here 是它的文档Here 是一个例子
以下是您可以附加到 SQL 的内容:
ORDER BY COALESCE(TIMEIN, TIMEOUT) DESC
【讨论】:
发布此答案并查看@shmsel 的答案后,我查看了两者之间的区别,似乎IFNULL
比COALESCE
稍快。 ***.com/questions/4747877/…以上是关于MySQL 条件排序的主要内容,如果未能解决你的问题,请参考以下文章