看板 Database 關於我們 聯絡資訊
最近遇到一些問題, 我是使用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
andreli:自己po先回答使用case when... 09/25 15:57
adrianshum:為什麼不是 CBADEF? 09/25 16:09
andreli:因為想要先取出一筆最新的放在最前面= =a 09/25 16:13
rushcat:可以先把最後你想看到的樣子列出來嗎...看不太懂... 09/25 16:20
andreli:就是A C B D E F這樣子, A是因為是DATE最新的排在第一個 09/25 16:23
rushcat:這樣不就ORDER BY Date DESC, Name ASC...!? 09/25 16:27
adrianshum:你沒有說最新date 排第一個... 分三段 union 起來吧.. 09/25 16:31
andreli:謝謝! 我再試試看 09/25 16:57