MySQL的任意排序

时间:2013-05-09 18:44:55

标签: mysql

我的SQL查询看起来像

SELECT Fruit, COUNT(*) FROM Table1 GROUP BY Fruit

返回

葡萄8
Apple 2
桃9 橙6
香蕉5

我不希望按字母顺序排序。

我想按此顺序

香蕉
苹果
橙色

葡萄

我似乎无法在案例雄蕊上得到他们的语法.....帮助!

2 个答案:

答案 0 :(得分:6)

您可以使用FIELD()函数:

SELECT Fruit, COUNT(*)
FROM Table1
GROUP BY Fruit
ORDER BY FIELD(Fruit, 'Banana','Apple','Orange','Peach','Grape')

答案 1 :(得分:3)

您可以在CASE子句中使用ORDER BY将数据按照您想要的顺序放置:

SELECT Fruit, COUNT(*) Total
FROM Table1 
GROUP BY Fruit
order by 
  case fruit 
    when 'banana' then 1
    when 'apple' then 2
    when 'orange' then 3
    when 'peach' then 4
    when 'grape' then 5 
    else 6 end;

请参阅SQL Fiddle with Demo