0

我希望以一种特定的方式对数据进行排序,我已经明确列出了我想首先出现的字段。基本上,我希望通过做一些我想象可能看起来像这样的事情来返回一个 MySQL 查询:

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

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

谢谢你的帮助!

4

1 回答 1

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

于 2013-05-14T18:43:16.970 回答