post-image

ORDER BY trong MySQL

Tổng quan

Mệnh đề ORDER BY trong MySQL được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, dựa trên một hoặc nhiều cột. Một số cơ sở dữ liệu sắp xếp các kết quả truy vấn theo thứ tự tăng dần theo mặc định. Lệnh ASC được sử dụng để sắp xếp tăng dần và DESC được sử dụng để sắp xếp giảm dần.

Cú pháp

Cú pháp cơ bản của mệnh đề ORDER BY trong MySQL như sau:

SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

Bạn có thể sử dụng nhiều hơn một cột trong mệnh đề ORDER BY. Đảm bảo rằng bất kỳ cột bạn đang sử dụng để sắp xếp cột đó phải nằm trong danh sách cột.

Ví dụ mệnh đề ORDER BY trong MySQL

Giả sử bảng CUSTOMERS có các bản ghi sau đây:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ha Anh   |  32 | Da Nang   |  2000.00 |
|  2 | Van Ha   |  25 | Ha Noi    |  1500.00 |
|  3 | Vu Bang  |  23 | Vinh      |  2000.00 |
|  4 | Thu Minh |  25 | Ha Noi    |  6500.00 |
|  5 | Hai An   |  27 | Ha Noi    |  8500.00 |
|  6 | Hoang    |  22 | Ha Noi    |  4500.00 |
|  7 | Binh     |  24 | Ha Noi    | 10000.00 |
+----+----------+-----+-----------+----------+

Để sắp xếp kết quả theo thứ tự tăng dần bởi các trường NAME và SALARY, bạn có thể sử dụng câu lệnh sau:

SELECT * FROM CUSTOMERS
   ORDER BY NAME, SALARY;

Kết quả:

Mệnh đề ORDER BY trong MySQL

Để sắp xếp kết quả theo thứ tự giảm dần bởi trường NAME, bạn có thể sử dụng câu lệnh sau:

SELECT * FROM CUSTOMERS
   ORDER BY NAME DESC;

Kết quả:

Mệnh đề ORDER BY trong MySQL

Để sắp xếp các hàng với thứ tự ưu tiên của riêng mình, câu lệnh sau sắp xếp kết quả theo thứ tự tăng dần của trường ADDRESS và theo thứ tự giảm dần của trường SALARY.

SELECT * FROM CUSTOMERS
   ORDER BY (CASE ADDRESS
   WHEN 'Ha Noi'   THEN 1
   WHEN 'Da Nang'   THEN 2
   ELSE 10 END) ASC, ADDRESS DESC;

Kết quả:

Mệnh đề ORDER BY trong MySQL

Kết quả cho thấy các bản ghi được sắp xếp theo thứ tự tăng dần của trường ADDRESS sau đó mới đến thứ giảm dần của trường SALARY.

Nguồn: https://viettuts.vn/mysql/menh-de-order-by-trong-mysql

Leave a Reply

Your email address will not be published. Required fields are marked *