2010-02-12 85 views
1

假设我有一个产品列表,并且每个产品都有一个价格。我希望展示最昂贵的产品,如果2个产品或更多的领带,然后我想按他们的名字命令。这样做似乎并没有产生我想要的结果:MySQL:按2个字段排序

ORDER BY cost DESC, product_name 

我在找什么语法?

+2

看起来你有语法正确。你确定第一个结果是产生重复吗? – jsmith 2010-02-12 20:33:30

+2

你的语法对我来说很好。你看到了什么输出? – 2010-02-12 20:33:40

+2

您可以发布说明此子句的查询结果不按预期方式工作吗? – 2010-02-12 20:35:09

回答

4

问题在哪里?

ORDER BY cost DESC, product_name 

cost desc顺序,然后由product_name asc。你遇到什么类型的意外行为?

6

这工作得很好:

use test; 

create table products (cost decimal(15,2), product_name varchar(50)); 

insert into products values (14.50, 'b product'); 
insert into products values (14.50, 'a product'); 
insert into products values (15.50, 'c product'); 

select * from products order by cost desc, product_name 

返回:

15.50, 'c product' 
14.50, 'a product' 
14.50, 'b product'