我有一张桌子"测试"使用这些列: id,name,timestamp
我提出了这个问题:
SELECT * FROM test ORDER BY timestamp DESC
这会将最新记录作为查询的第一个结果。但是,有些时间戳填充了" 0"我想把这些放在其他人面前。
如果我通过时间戳ASC订购,则整个结果将被反转。我只想先将timestamp = 0,其余结果下降。
怎么做?
答案 0 :(得分:7)
通过order by
子句中的其他比较来执行此操作:
SELECT *
FROM test
ORDER BY (timestamp = 0) desc,
timestamp DESC;
在MySQL中,布尔结果(例如timestamp = 0
)在假时被视为0
,而当为真时被视为1
。这使它可用于许多目的,包括order by
。