按时间戳desc排序,但先放0

时间:2014-03-17 13:25:25

标签: mysql

我有一张桌子"测试"使用这些列: id,name,timestamp

我提出了这个问题:

SELECT * FROM test ORDER BY timestamp DESC

这会将最新记录作为查询的第一个结果。但是,有些时间戳填充了" 0"我想把这些放在其他人面前。

如果我通过时间戳ASC订购,则整个结果将被反转。我只想先将timestamp = 0,其余结果下降。

怎么做?

1 个答案:

答案 0 :(得分:7)

通过order by子句中的其他比较来执行此操作:

SELECT *
FROM test 
ORDER BY (timestamp = 0) desc,
         timestamp DESC;

在MySQL中,布尔结果(例如timestamp = 0)在假时被视为0,而当为真时被视为1。这使它可用于许多目的,包括order by