在结果集中对MySQL结果进行排序

时间:2010-04-25 14:00:25

标签: mysql

我有一个结果集,让我们说10个结果。 其中3个有'Pears'类型,接下来3个有'苹果'类型,接下来有3个有'香蕉'类型。最后一个记录有一种“挤压设备” - 与水果无关。 如何以GROUPED顺序返回这组结果(也用于分页)我指定不使用任何固有的排序因子,如ALPHABETA或ID等? 在运行代码之前,我拥有所有类型,因此可以指定它们。 即

ID | Bananas
ID | Bananas
ID | Bananas
ID | Apples
ID | Apples
ID | Apples
ID | Pears
ID | Pears
ID | Pears
ID | Squeezing Equipment

3 个答案:

答案 0 :(得分:1)

使用order by子句。如果你想要“挤压设备”最后使用这个:

ORDER BY CASE name
    WHEN 'Bananas' THEN 1
    WHEN 'Apples' THEN 2
    WHEN 'Pears' THEN 3
    WHEN 'Squeezing Equipment' THEN 4
    END

答案 1 :(得分:0)

这将首先按字母顺序排序所有不是Squeezing Equipment的类型:

select ID, Type
from MyTable
order by case when Type = 'Squeezing Equipment' then 1 else 0 end, Type

如果您有多种非水果类型,您可以这样做:

select ID, Type
from MyTable
order by case when Type in ('Squeezing Equipment', 'some other type') then 1 else 0 end, Type

答案 2 :(得分:0)

不是简单的ORDER BY和GROUP BY实现了这个吗?或者我错过了什么?

SELECT ID, Type FROM TheFruityTable 
GROUP BY Type 
ORDER BY Type;