我有一个通知表,希望按read_at列和created_at列进行排序。
通知表
id | read_at | created_at |
---|---|---|
1 | 空 | 2021年6月21日12:56:12|
2 | 空 | 2021年6月22日13:12:43//tr>|
3 | 2021年6月24日19:43:42 | 2021年6月23日16:34:45|
4 | 2021年6月23日17:00:03 | 21年6月23-16:40:22 |
5 | null | 2021年6月24日11:41:32 |
6 | 2021年6月24日21:12:12 | 2021月24日19:45:22|
7 | 2021年6月25日03:14:08 | 2021年6月25-03:12:57|
8 | 空 | 2021年6月25日09:59:22 |
9 | 2021年6月25日12:41:40 | 21年6月25-日12:41:09 |
10 | 2021年6月26日01:59:59 | 2021年6月25日20:09:02
您可以通过布尔表达式read_at IS NULL
降序进行排序,该表达式将返回所有read_at
位于顶部的null
行,然后通过created_at
降序(或像预期结果一样升序(进行排序:
ORDER BY read_at IS NULL DESC, created_at DESC -- or ASC ???
我相信这应该能解决你的问题。
现在无法测试。
从通知顺序中选择id、read_at、created_at,如果read_at为null,则1结束desc,created_at desc