作者andreli (小狗跟正妹是我的死穴)
看板Database
标题[MySQL] 资料排序问题
时间Fri Sep 25 15:54:40 2009
最近遇到一些问题, 我是使用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
1F:→ andreli:自己po先回答使用case when... 09/25 15:57
2F:→ adrianshum:为什麽不是 CBADEF? 09/25 16:09
3F:→ andreli:因为想要先取出一笔最新的放在最前面= =a 09/25 16:13
4F:→ rushcat:可以先把最後你想看到的样子列出来吗...看不太懂... 09/25 16:20
5F:→ andreli:就是A C B D E F这样子, A是因为是DATE最新的排在第一个 09/25 16:23
6F:→ rushcat:这样不就ORDER BY Date DESC, Name ASC...!? 09/25 16:27
7F:→ adrianshum:你没有说最新date 排第一个... 分三段 union 起来吧.. 09/25 16:31
8F:→ andreli:谢谢! 我再试试看 09/25 16:57