2012-11-20 36 views
30

Mam tabelę mysql z produktami.Kolejność MYSQL według sortowania rosnącego i malejącego.

Produkty mają identyfikator kategorii i nazwę.

Co chcę zrobić, to zamówienie według kategorii id najpierw malejąco, a następnie zamówienie według nazwy produktu rosnąco zamówienia.

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

Co chciałbym to

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

ale niestety nie działa.

Czy jest to możliwe w mysql, aby zdefiniować porządek sortowania drugiej kolumny sortującej?

Odpowiedz

51

Można to zrobić w ten sposób:

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

Wystarczy popatrzeć na ORDER BY Optimization

+0

To mnie zastanawia, dlaczego tak trudno jest znaleźć w Google ... Prawdopodobnie szukam z niewłaściwymi słowami kluczowymi. Zaakceptuję twoją odpowiedź za kilka minut. – Tschallacka

+1

[Wyszukiwanie w Google] (https://www.google.com/search?hl=en&safe=off&tbo=d&biw=1280&bih=909&noj=1&sclient=psy-ab&q=order+do+mysql&oq=order+do+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

Tak, daje to zamówienie przez, był tam, ale prawie żadna z instrukcji tutoriali nie pokazuje, jak wykonać dwa polecenia według. – Tschallacka

0

Nie rozumiem jaki jest sens zamawiania z tej samej kolumnie ASC i DESC w tym samym ORDER BY, ale to jak możesz to zrobić: naam DESC, naam ASC tak:

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

Dziękuję za odpowiedź! – Tschallacka

Powiązane problemy