MySQL:按用户定义的方式查询排序

时间:2014-04-08 05:08:12

标签: mysql sql-order-by

我有一个查询,我得到这样的数据:

fld_id  | fld_type_id | fld_product
-----------------------------------
    81  |   1         |    25
    82  |   2         |    25
    83  |   3         |    25
    84  |   4         |    25

fld_type_id的顺序是1,2,3,4,但我想要的是在3,4,2,1中安排这个顺序我尝试这样做:

Select * from tbl 
where fld_product = 25 
Order by Case fld_type_id 
when 3 then 1 
when 4 then 2 
when 2 then 3 
else 4

但它没有帮助我......我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

Select *, 
Case fld_type_id when 3 then 1 
when 4 then 2 
when 2 then 3 
else 4 END as sOrder 
from tbl where fld_product = 25 Order by sOrder

答案 1 :(得分:1)

使用FIELD()

ORDER BY FIELD(fld_type_id, 1, 2, 4, 3) DESC

fld_type_id不在列表中时,it appears below