Khi sử dụng lệnh SELECT lấy dữ liệu thì theo mặc định nó sẽ sắp xếp kết quả từ cũ tới mới. Tuy nhiên bạn có thể thay đổi thứ tự sắp xếp ngược lại theo dạng từ mới tới cũ, hay thậm chí là sắp xếp theo một column nào đó cũng được bằng cách sủ dụng lệnh ORDER BY.
Mục lục
- 1. Giới thiệu lệnh ORDER BY trong MySQL
- Sắp xếp theo 1 column
- Sắp xếp theo nhiều column
- 2. Một số ví dụ khác về ORDER BY trong MySQL
- 3. Lời kết
1. Giới thiệu lệnh ORDER BY trong MySQL
Lệnh ORDER BY dùng chung với lệnh SELECT để sắp xếp kết quả trả về theo tiêu chí:
- Kết quả sẽ tăng hoặc giảm dần
- Có thể chọn một hoặc nhiều columns để sắp xếp
Sắp xếp theo 1 column
Cú pháp như sau:
Bài viết này được đăng tại tranvanbinh.vn
1 2 3 4 | SELECT field1, field2, ... FROM table_name WHERE ... ORDER BY column_name sort_type<br><br><br> |
Trong đó:
column_name
là tên column cần sắp xếpsort_type
là loại sắp xếp và có giá trị là:- ASC nếu tăng dần
- DESC nếu giảm dần
Ví dụ: Lấy danh sách sinh viên trong bảng SINHVIEN và kết quả trả về sắp xếp theo ID sinh viên và tăng dần
1 2 3 | SELECT MaSV, TenSV, NamSinh FROM SINHVIEN ORDER BY MaSV ASC |
Sắp xếp theo nhiều column
Cú pháp như sau:
1 2 3 4 | SELECT field1, field2, ... FROM table_name WHERE ... ORDER BY column_name1 sort_type1, column2 sort_type2, ... |
Giải thích tương tự như trường hợp trên, nghĩa là column_name
sẽ là tên column và sort_type
sẽ là cách sort tăng (ASC) hoặc giảm (DESC).
Ví dụ: Lấy danh sách sinh viên trong bảng SINHVIEN và sắp xếp theo ID sinh viên là tăng dần và năm sinh giảm dần
1 2 3 | SELECT MaSV, TenSV, NamSinh FROM SINHVIEN ORDER BY MaSV ASC , NamSinh DESC |
2. Một số ví dụ khác về ORDER BY trong MySQL
Trước tiên bạn cần tạo database QLHS và tạo bảng SINHVIEN, sau đó thêm vào một số record như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE DATABASE QLHS; USE QLHS; CREATE TABLE SINHVIEN( MaSV INT (11) NOT NULL PRIMARY KEY AUTO_INCREMENT, TenSV VARCHAR (255), NamSinh INT (4) ) ENGINE = INNODB; INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van A' , '1990' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van B' , '1991' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van C' , '1980' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van D' , '1976' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van E' , '1990' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van F' , '1954' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van G' , '1967' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van H' , '1978' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van I' , '1991' ); INSERT INTO SINHVIEN (TenSV, NamSinh) VALUES ( 'Nguyen Van K' , '2000' ); |
Ok bây giờ ta làm các ví dụ nhé.
1 | SELECT * FROM SINHVIEN ORDER BY MaSV ASC |
Kết quả:
1 2 3 | SELECT * FROM SINHVIEN WHERE NamSinh < 1990 ORDER BY NamSinh ASC |
Kết quả:
1 2 | SELECT * FROM SINHVIEN ORDER BY MaSV ASC , NamSinh DESC |
Kết quả:
3. Lời kết
Vẫn còn một số cách sắp xếp ORDER BY nâng cao trong MySQL nữa như:
- Sắp xếp theo biểu thức
- Sắp xếp với hàm FIELD()
Nhưng mình không đề cập trong bài này vì sẽ rất khó cho những ban mới học MySQL.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================