Joh*_*ket 1 mysql sql group-by sql-order-by
好的女士们,我真的很感激一些帮助:
这是我的表:
ID postID replyID content entry_date 1 0 40 hey 12/7 2 0 40 hi 12/8 3 0 40 whatsup 12/9 4 2 40 why? 12/10 5 0 40 who? 12/11
我需要运行一个查询来得到它:
ID postID replyID content entry_date 1 0 40 hey 12/7 2 0 40 hi 12/8 4 2 40 why? 12/10 3 0 40 whatsup 12/9 5 0 40 who? 12/11
您将看到ID 3和4已切换.所以基本上我需要通过entry_date进行ASC,除非ID = POSTID,然后我需要将这两个组合在一起,并且还需要通过entry_date对这两个进行ASC.
这是我尝试过但我完全迷失了:
SELECT t1.ID, t1.postID, t1.replyID, t1.content, t1.entry_date
FROM discussion t1, discussion t2
WHERE t1.replyID = '40' AND t1.ID = t2.postID
ORDER BY t1.entry_date ASC
Run Code Online (Sandbox Code Playgroud)
除了找到一行ID =一行postID之外,它基本上什么都不做
您可以CASE在ORDER BY子句中添加语句
ORDER BY
CASE WHEN postID = 0 THEN ID ELSE postID END
, entry_date
Run Code Online (Sandbox Code Playgroud)
这样做,您可以完全放弃连接,整个语句可以简化为
SELECT ID
, postID
, replyID
, content
, entry_date
FROM discussion
ORDER BY
CASE WHEN postID = 0 THEN ID ELSE postID END
, entry_date
Run Code Online (Sandbox Code Playgroud)
请注意,我确实假设输入日期是DATETIME列,而不是VARCHAR列.
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |