MySQL按X顺序然后分组按Y然后按字母顺序排列Z.

时间:2018-04-30 18:10:54

标签: mysql sql phpmyadmin

我想1)按价格ASC订单(显示最便宜)然后2)按商品名称分组然后3)按商品名称按字母顺序排序。

这里有2个colums(只包含2个相关列,还有其他colums,如model,color等..) enter image description here

我想要的结果:

enter image description here

由于

1 个答案:

答案 0 :(得分:0)

SELECT Item, Min(Price), Other_Columns FROM table GROUP BY Item ORDER BY Item

如果您想要属于最低价格的Id,颜色和型号,事情会变得复杂。你可以使用类似的东西:

SELECT * FROM `table` WHERE id IN 
    (SELECT MIN(id) FROM `table` T1 WHERE Price=
        (SELECT MIN(Price) FROM `table` T2 WHERE T1.Item=T2.Item) 
     GROUP BY Item, Price)

基本上你做的是:首先确定每件物品的最低价格。然后找到具有该价格的每个物品的所有第一个ID。然后选择具有这些Id的所有记录中的所有列。可能它可以更简单,但这是最容易理解的。

我不确定这是你想要的,因为你的问题不是非常明确/清楚(因此所有的反对票)。但我有点相信它是。