Mệnh đề ORDER BY trong MySQL là một mệnh đề cho phép sắp xếp các bản ghi trong một bảng dữ liệu. Mệnh đề này cho phép sắp xếp các bản ghi theo một hoặc nhiều cột và theo thứ tự tăng dần hoặc giảm dần.
Cú pháp của mệnh đề ORDER BY
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... [ASC|DESC];
Trong đó:
- column1, column2: Là tên các cột
- table_name: Tên bảng
- ASC | DESC: Sử dụng 1 trong 2, ASC để sắp xếp tăng dần. Ngược lại với DESC sắp xếp giảm dần.
>>Xem thêm: Mệnh đề GROUP BY trong MySQL – Hướng dẫn và ví dụ sử dụng
Ví dụ sử dụng
Mình có ví dụ bảng users như dưới đây.
Ví dụ 1: Sắp xếp tăng dần theo cột tuổi (age)
Viết SQL như sau:
SELECT * FROM `users`
ORDER BY age
Theo mặc định của ORDER BY thì khi không có ASC hay DESC thì mặc định sẽ luôn sắp xếp theo giảm dần. Vì vậy khi sắp xếp giảm dần không nhất tiền cần có ASC, tuy nhiên cũng nên có để câu lệnh rõ rằng hơn.
Kết quả thực hiện câu lệnh, tuổi đã được sắp xếp lại theo thứ tự giảm dần.
Ví dụ 2: Sắp xếp giảm dần
Cũng với vú dụ trên, bây giờ ta sắp xếp giá trị cột tuổi(age) theo thứ tự là giảm dần. Viết lệnh SQL.
SELECT * FROM `users`
ORDER BY age DESC
Kết quả thực hiện câu lệnh
Ví dụ 3: Sắp xếp theo nhiều cột
Với ví dụ này ta sẽ sắp xếp các user có nhóm role là 1 lên đầu, sau đấy tới nhóm role 2 ở giữa, nhóm role 3 ở sau cùng(Tức là sắp xếp role theo thứ tự tăng dần). Và sau đó với mỗi nhóm role sẽ tiếp tục sắp xếp tuổi theo thứ tự giảm dần. (sắp xếp bảng user theo 2 cột là role và age)
Viết lệnh SQL như sau.
SELECT * FROM `users`
ORDER BY role, age DESC
Kết quả thực hiện câu lệnh
Như vậy trong ví dụ này, chúng ta có thể thấy dữ liệu đã được sắp xếp lại các role được sắp xếp thành một nhóm với role tăng dần. Sau đó với mỗi nhóm role, tuổi sẽ được sắp xếp giảm dần.
Cảm ơn bạn đã theo dõi bài viết! Chúc bạn học tốt!
[XEM CÁC BÀI VIẾT CHUYÊN ĐỀ HỌC MYSQL CƠ BẢN TẠI ĐÂY]
XEM THÊM Toán tử Like và Not Like – Tìm kiếm khớp chuỗi trong MySQL Tìm hiểu Mệnh đề WHERE IN, WHERE NOT IN trong MySQL Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Mệnh đề FROM trong MySQL – truy vấn từ bảng nào