Bộ truy vấn Django - Sắp xếp theo thứ tự
Đặt bởi
Để sắp xếp QuerySets, Django sử dụng phương thức order_by()
:
Ví dụ
Sắp xếp kết quả theo thứ tự abc theo tên:
mydata = Member.objects.all().order_by('firstname').values()
Chạy ví dụ »Trong SQL, câu lệnh trên sẽ được viết như sau:
SELECT * FROM members ORDER BY firstname;
Thứ tự giảm dần
Theo mặc định, kết quả được sắp xếp tăng dần (giá trị thấp nhất trước), để thay đổi hướng giảm dần (giá trị cao nhất trước), sử dụng dấu trừ (NOT), -
trước tên trường:
Ví dụ
Thứ tự kết quả tên giảm dần:
mydata = Member.objects.all().order_by('-firstname').values()
Chạy ví dụ »Trong SQL, câu lệnh trên sẽ được viết như sau:
SELECT * FROM members ORDER BY firstname DESC;
Nhiều đơn hàng
Để sắp xếp theo nhiều trường, hãy phân tách các tên trường bằng dấu phẩy trong phương thức order_by()
:
Ví dụ
Sắp xếp kết quả trước theo họ tăng dần, sau đó giảm dần theo id:
mydata = Member.objects.all().order_by('lastname', '-id').values()
Chạy ví dụ »Trong SQL, câu lệnh trên sẽ được viết như sau:
SELECT * FROM members ORDER BY lastname ASC, id DESC;