[MySQL] 資料排序問題

看板Database作者 (小狗跟正妹是我的死穴)時間16年前 (2009/09/25 15:54), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
最近遇到一些問題, 我是使用PHP+MySQL來開發網站, 目前有一個資料表: ID NAME DATE 1 A 2009-01-01 2 B 2008-01-01 3 C 2007-01-01 4 D 5 E 6 F 如同上述所示, 有些人的DATE欄位中沒有值, 有些人的有, ID是唯一流水號, 最後排序出來的結果需要是 A C B D E F 重點就在把DATE取出來當作第一筆, 接著使用DATE ASC來排序, DATE沒有值的放最後, 目前我的解決辦法是使用PHP來幫忙解決, 先寫出取出DATE最新的A出來, 然後放個變數記住A的ID, 遇到ID == A時就不顯示A, 後面的就依序使用DATE ASC來顯示出來。 說了一大串, 我的問題是: 1. 遇到這種問題只能靠PHP這些來處理嗎? 還是可以使用SQL一次就解決了... 2. 還有我如何先DATE ASC那些有值的NAME, DATE為null的放在最後呢? 感謝各位前輩耐心的觀看, 希望可以學到不一樣的方法, 謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.92.77.187

09/25 15:57, , 1F
自己po先回答使用case when...
09/25 15:57, 1F

09/25 16:09, , 2F
為什麼不是 CBADEF?
09/25 16:09, 2F

09/25 16:13, , 3F
因為想要先取出一筆最新的放在最前面= =a
09/25 16:13, 3F

09/25 16:20, , 4F
可以先把最後你想看到的樣子列出來嗎...看不太懂...
09/25 16:20, 4F

09/25 16:23, , 5F
就是A C B D E F這樣子, A是因為是DATE最新的排在第一個
09/25 16:23, 5F

09/25 16:27, , 6F
這樣不就ORDER BY Date DESC, Name ASC...!?
09/25 16:27, 6F

09/25 16:31, , 7F
你沒有說最新date 排第一個... 分三段 union 起來吧..
09/25 16:31, 7F

09/25 16:57, , 8F
謝謝! 我再試試看
09/25 16:57, 8F
文章代碼(AID): #1Al7T3ul (Database)