我有一张看起来像这样的桌子。
my_id | date
-------------------
1 | 2013-04-01
1 | 2013-04-02
2 | 2013-04-03
1 | 2013-04-04
3 | 2013-04-05
2 | 2013-04-06
我想要一个给出这个结果的 SQL 查询。
my_id | date
-------------------
2 | 2013-04-06
2 | 2013-04-03
3 | 2013-04-05
1 | 2013-04-04
1 | 2013-04-02
1 | 2013-04-01
所以我希望所有具有相同 my_id 的人都以日期降序排列。并且 my_id 的组应根据组中的最新日期按日期降序排序。
这就像您可以说的线程对话,my_id 是对话 ID,而日期是该对话的帖子日期。因此,当在列表中显示时,与最新帖子的对话应该位于顶部。
后续问题如果 my_id 为 NULL,则不应将它们组合在一起,但仍按日期排序。例如,如果他们不是对话的一部分,就会出现这种情况。
my_id | date
-------------------
1 | 2013-04-01
1 | 2013-04-02
2 | 2013-04-03
1 | 2013-04-04
NULL | 2013-04-05
2 | 2013-04-06
NULL | 2013-04-07
上面的表格将是这样的
my_id | date
-------------------
NUll | 2013-04-07
2 | 2013-04-06
2 | 2013-04-03
NULL | 2013-04-05
1 | 2013-04-04
1 | 2013-04-02
1 | 2013-04-01