mysql - MySQL中如何对多个字段进行排序?

标签 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 来排序其他内容?

感谢您的帮助!

最佳答案

也许是这样的?

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

关于mysql - MySQL中如何对多个字段进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16550243/

相关文章:

php - 函数和代码没有正确地传递变量。类似 Twitter 的系统代码中的一些调试请求

php - 根据单击的按钮更新表时的情况语句?

database - 如何在数据库中存储年月?

php query_posts orderby=random 导致 css 中断

javascript - 如何从单选按钮中的数据库加载值?

php - SQL 查询 onsubmit - 更改现有结果

Android:从数据库获取数据到ListFragment

mysql - 如何优化以下 SQL 查询?

mysql - SQL 查询需要修改 — 同一主题不能多次显示

mysql按多个条件排序