我有一个表"test"与这些列:id,name,timestamp
我做了这个查询:
SELECT * FROM test ORDER BY timestamp DESC
Run Code Online (Sandbox Code Playgroud)
这会将最新记录作为查询的第一个结果.但是,有些时间戳填充"0",我想把它们放在其余的前面.
如果我通过时间戳ASC订购,那么整个结果将被反转.我只想先将timestamp = 0,其余结果降序.
怎么做?
通过order by子句中的其他比较执行此操作:
SELECT *
FROM test
ORDER BY (timestamp = 0) desc,
timestamp DESC;
Run Code Online (Sandbox Code Playgroud)
在MySQL中,布尔结果(例如for timestamp = 0)被视为0false和1when时.这使它可用于许多目的,包括这样的目的order by.
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |