MYSQL按升序和降序排序

41

我有一个包含产品的 MySQL 表格。

每个产品都有一个分类 ID 和一个名称。

我想要按照分类 ID 降序排列,然后按照产品名称升序排列。

SELECT * FROM `products` ORDER BY `products`.`product_category_id`,`naam` DESC

What i'd like is

SELECT * FROM `products` ORDER BY `products`.`product_category_id`,`naam` DESC,ASC

但不幸的是,那样做行不通。

在mysql中定义第二个排序列的排序顺序是否可能?

2个回答

66
你可以用以下方法来实现:
ORDER BY `products`.`product_category_id` DESC ,`naam` ASC

请查看ORDER BY 优化


然后我想知道为什么在谷歌上很难找到这个...可能是用了错误的关键词搜索。 我会在几分钟内接受您的答案。 - Tschallacka
是的,它提供了order by,我已经知道了,但几乎没有手册或教程强调如何执行两个order by。 - Tschallacka
1
@MichaelDibbets:你看到了这个手册吗? - Himanshu
1
既然你指出了这一点,我在搜索“order by”的时候只得到了普通的单列排序指令或如何按相同的升序/降序顺序排序多个列的说明。我真的要感谢你的回答。 - Tschallacka

2

我不理解在同一 ORDER BY 中使用相同列的 ASCDESC 的含义,但是你可以这样做:naam DESC, naam ASC,就像这样:

ORDER BY `product_category_id` DESC,`naam` DESC, `naam` ASC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接