Django Order By
Order By(並べ替え)
QuerySetを並べ替えるために、Djangoは次のメソッドorder_by()
を使用します。
SQLでは、上記のステートメントは次のように記述されます。
SELECT * FROM members ORDER BY firstname;
降順
デフォルトでは、結果は昇順(最小値が最初)にソートされます。方向を降順(最大値が最初)に変更するには、-
フィールド名の前にマイナス記号(NOT)を使用します。
SQLでは、上記のステートメントは次のように記述されます。
SELECT * FROM members ORDER BY firstname DESC;
複数のOrder By
複数のフィールドで順序付けするには、order_by()
メソッド内でフィールド名をカンマで区切ります。
例
最初に名字の昇順で結果を並べ替え、次にIDの降順で並べ替えます。
mydata = Member.objects.all().order_by('lastname', '-id').values()
SQLでは、上記のステートメントは次のように記述されます。
SELECT * FROM members ORDER BY lastname ASC, id DESC;
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。