2012-11-20 159 views
30

我有一个与产品的MySQL表。MYSQL按升序和降序排序

该产品有一个类别ID和一个名称。

我想要做的是按类别先订单降序,然后按产品名称升序排序。

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

我想什么是

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

但是,不幸的是不起作用。

这是甚至有可能在MySQL中定义第二个排序列的排序顺序?

回答

51

你可以这样做,以这种方式:

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

看一看ORDER BY Optimization

+0

那么我想知道为什么会这样很难找到对谷歌... probaly看与错误的关键字。 我会在几分钟内接受您的答案。 – Tschallacka

+1

[Google搜索](https://www.google.com/search?hl=zh-CN&safe=off&tbo=d&biw=1280&bih=909&noj=1&sclient=psy-ab&q=order+by+mysql&oq=order+by+mysql&gs_l=serp .3..0i20l2j0i7l7j0.56620.56620.0.56847.1.1.0.0.0.0.165.165.0j1.1.0.les%3B..0.0 ... 1c.1.86-zknQ5TOc) – hims056

+0

是的,它给出的顺序,在那里,但几乎没有任何教程的手册强调如何做两个顺序。 – Tschallacka

0

我不明白在同一ORDER BY与同一列ASCDESC订货的意思,但是这如何能做到这一点:naam DESC, naam ASC像这样:

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

谢谢你的回答! – Tschallacka