Sắp xếp bản ghi thông qua truy vấn SQL trong Python
Để sắp xếp các hàng của kết quả,
cần sử dụng lệnh ORDER
BY.
Ví dụ
Hãy chọn tất cả người dùng từ bảng users của chúng ta
và sắp xếp họ theo tuổi từ
nhỏ đến lớn:
query = "SELECT * FROM users ORDER BY age"
Kết quả của mã đã thực thi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Ví dụ
Hãy thay đổi thứ tự sắp xếp bằng
lệnh DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Kết quả của mã đã thực thi:
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Ví dụ
Hãy chọn tất cả người dùng có mức lương 500
và sắp xếp họ theo tuổi từ nhỏ
đến lớn:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Kết quả của mã đã thực thi:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Ví dụ
Có thể sắp xếp không phải theo một trường, mà theo một số trường. Ví dụ, hãy chọn tất cả người dùng và sắp xếp họ đầu tiên theo tuổi tăng dần, và những người dùng có cùng tuổi thì sắp xếp theo mức lương tăng dần:
query = "SELECT * FROM users ORDER BY age, salary"
Kết quả của mã đã thực thi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Ví dụ
Lệnh ORDER BY có thể kết hợp
với LIMIT . Trong trường hợp này cần
viết lệnh sắp xếp trước, sau đó - giới hạn.
Trong ví dụ tiếp theo, trước tiên hãy sắp xếp
các bản ghi theo tuổi tăng dần, sau đó
lấy 3 bản ghi đầu tiên:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Kết quả của mã đã thực thi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Bài tập thực hành
Hãy lấy tất cả người dùng và sắp xếp họ theo mức lương tăng dần.
Hãy lấy tất cả người dùng và sắp xếp họ theo mức lương giảm dần.
Hãy lấy tất cả người dùng và sắp xếp họ theo tên.
Hãy lấy những người dùng có mức lương 500 và
sắp xếp họ theo tuổi.
Hãy lấy tất cả người dùng và sắp xếp họ theo tên và theo mức lương.
Hãy sắp xếp người dùng theo mức lương tăng dần
và lấy 3 nhân viên đầu tiên từ
kết quả sắp xếp.
Hãy sắp xếp người dùng theo mức lương giảm dần
và lấy 3 người dùng đầu tiên từ
kết quả sắp xếp.