当我提出请求时,我希望所有具有相同group_id的项目“合在一起”,例如117,117,134,111是好的但是117,134,117,111不合适,因为group_id 117并非全部“在一起”。我希望这是有道理的。我知道如何实现这一目标的唯一方法是通过group_id排序我的结果,但是如果我想通过类似的价格订购或有什么方法可以做到这一点,同时保持所有匹配的group_id在一起?
感谢。
答案 0 :(得分:1)
是的,您只需按两者订购,因此您的ORDER BY
应如下所示:
ORDER BY group_id, price
首先按group_id排序,然后按价格排序。因此所有相同的group_id将在一起,但只要有多个具有相同的group_id,它们将按价格排序。
你的问题有点含糊不清,所以只是为了解释一下你真正想要的东西 - 没有简单的方法来“主要”按价格排序,只是将相同的group_id保持在一起,这没有任何意义。我的意思是,如果您有以下数据:
group_id price
117 2.00
117 5.00
111 4.00
134 1.00
您无法按此顺序轻松选择它:
group_id price
134 1.00
117 2.00
117 5.00
111 4.00
答案 1 :(得分:1)
然后你必须按多列排序,所以:
SELECT group_id, price, name
FROM groups
ORDER BY group_id, price;
通过这种方式,所有的groupid都在一起,并且在groupid的那些'组'中,一切都按照它的价格排序。或者我误解了你的问题?
答案 2 :(得分:0)
我愿意:
SELECT price, group_id
FROM groups
WHERE 1=1
ORDER BY group_id, price DESC
用于连续显示组,然后以后代顺序显示价格。
答案 3 :(得分:-1)
为什么不按价格和group_id ???
订购SELECT price, group_id, ...
FROM products
WHERE 1=1
ORDER BY price DESC, group_id
这将首先显示最大的价格,而对于价格相等,它将显示group_id连续