【问题标题】:MySQL Conditional OrderingMySQL 条件排序
【发布时间】: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)

标签: mysql


【解决方案1】:
ORDER BY IFNULL(TIMEIN, TIMEOUT) DESC

【讨论】:

  • 成功了!我会在 5 分钟后将此标记为答案。
【解决方案2】:

在 MySQL 中有一个名为 COALESCE 的便捷函数,您可以直接放入 ORDER BY 子句中。

Here 是它的文档
Here 是一个例子

以下是您可以附加到 SQL 的内容:

ORDER BY COALESCE(TIMEIN, TIMEOUT) DESC

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 2016-06-12
相关资源
最近更新 更多