MySQL - 从一列中选择最高值,然后根据第二列重新排序?

时间:2013-02-01 22:24:58

标签: mysql sql

我认为我需要做的事情可以使用一个查询完成,但我真的不确定 - 我想避免执行查询,然后在可能的情况下对结果数组进行排序。

基本上,我有一个表,其中包括以下列:

  

product_name,价格,已售出

从这些专栏中,我想做以下几点:

  • 'sold' column DESC;
  • 中选择最高的20个值
  • price ASC订购20个结果。

听起来很简单,但无法弄清楚如何实现这一点来挽救我的生命,而SQL并不是我的强项。如果有人可以提供帮助,我们将不胜感激!

2 个答案:

答案 0 :(得分:4)

您可以使用子查询:

select t.*
from (select t.*
      from t
      order by sold desc
      limit 20
     ) t
order by price asc

你有一个查询,可以做很多事情。我会称之为。这是你做的:

select t.*
from (select t.*
      from (<subquery
           ) t
      order by sold desc
      limit 20
     ) t
order by price asc

答案 1 :(得分:0)

我认为这可以满足您的需求:

select * from table
order by sold desc, price asc