作者mikechen (mike)
看板Database
标题Re: [SQL ] 关於排序
时间Mon May 18 08:44:22 2009
※ 引述《TonyQ (沉默是金)》之铭言:
: ※ 引述《sdallan ()》之铭言:
: : 使用 mysql
: : std_case , std_name , std_sch
: : 状况 学校 姓名
: : ───────────────
: : 流失 高雄 测试
: : 试听 台中 测试
: : 询问 台北 测试
: : 班内 新竹 测试
: : 想要排序 状况这个栏位 @@"
: : desc asc 两种下去排都不是我要的。
: : 我希望的排法是 班内>询问>试听>流失
: : 至於学校、姓名,怎麽排,不重要XD
: : 还请麻烦帮忙解决
: SELECT std_case, std_name, std_sch,
: CASE std_case
: WHEN '班内' THEN 1
: WHEN '询问' THEN 2
: WHEN '试听' THEN 3
: WHEN '流失' THEN 4
: ELSE 5
: END
: FROM `student`
: ORDER BY 4 asc
:个人是觉得如果可以简单的事情 , 就不要太复杂了.
select case 虽然可以解决问题,但不一定是最好的方法,
假设你的资料量是数万笔,需求临时改变其中几个顺序,
反而实务上使用第一种自建index方法比较好维护,
改SQL指令会改到死,提供参考
解决问题不一定只用聪明方法,有的时候笨一点会更好
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.126.127.108
1F:推 bobju:有道理. XD 05/18 11:16
2F:推 grence:实务嘛,快又有效,能动就好;个人觉得order by比较直觉 05/18 13:45