如何在MySQL中按多个字段排序?

时间:2013-05-14 18:27:43

标签: mysql database sql-order-by

我希望以特定的方式订购数据,我已经明确地列出了我想首先出现的字段。基本上,我希望通过做一些我想象的事情来返回MySQL查询:

ORDER BY
  FIELD(brand,'toyota','honda','ford'),
  FIELD(type, 'SUV', 'Sedan', 'Coupe'),
  FIELD(transmission, 'manual', 'automatic', 'cvt')

简单地说我正在寻找一种基于多个领域专门订购东西的方法。我已经尝试过这样但它似乎没有用。甚至可以这样做,或者在我指定一个字段的顺序之后我是否只能通过ASC或DESC订购其他东西?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

也许是这样的?

SELECT brand, type, transmission      
FROM tablename 
ORDER BY 
 case brand
  when 'toyota' then 1
  when 'honda' then 2
  when 'ford' then 3
 end ASC,
 case type
  when 'SUV' then 1
  when 'Sedan' then 2
  when 'Coupe' then 3
 end ASC,
 case transmission
  when 'manual' then 1
  when 'automatic' then 2
  when 'cvt' then 3
 end ASC

http://www.devx.com/tips/Tip/17288