Tóm lược. trong hướng dẫn này, bạn sẽ học cách sắp xếp các hàng trong tập kết quả bằng cách sử dụng mệnh đề MySQL
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Giới thiệu về mệnh đề ORDER BY của MySQL
Khi bạn sử dụng câu lệnh
9 để truy vấn dữ liệu từ một bảng, thứ tự của các hàng trong tập hợp kết quả không được chỉ định. Để sắp xếp các hàng trong tập kết quả, bạn thêm mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
8 vào câu lệnhCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
1Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Sau đây minh họa cú pháp của mệnh đề
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
SELECT select_list FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
Trong cú pháp này, bạn chỉ định một hoặc nhiều cột mà bạn muốn sắp xếp sau mệnh đề
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
4 là viết tắt của tăng dần vàCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
5 là viết tắt của giảm dần. Bạn sử dụngCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
4 để sắp xếp tập kết quả theo thứ tự tăng dần vàCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
5 để sắp xếp tập kết quả theo thứ tự giảm dần tương ứngCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Mệnh đề
8 này sắp xếp tập hợp kết quả theo các giá trị trongCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
9 theo thứ tự tăng dầnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Và mệnh đề
8 này sắp xếp tập hợp kết quả theo các giá trị trongCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
9 theo thứ tự giảm dầnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Theo mặc định, mệnh đề
8 sử dụngCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
4 nếu bạn không chỉ định rõ ràng bất kỳ tùy chọn nào. Do đó, các mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8 sau đây là tương đươngCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
và
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1;
Nếu bạn muốn sắp xếp tập hợp kết quả theo nhiều cột, bạn chỉ định danh sách các cột được phân tách bằng dấu phẩy trong mệnh đề
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1, column2;
Trong trường hợp này, mệnh đề
8 sắp xếp tập kết quả của
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
9 theo thứ tự tăng dần trước và sắp xếp tập kết quả đã sắp xếp củaCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8 theo thứ tự tăng dầnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1;
Có thể sắp xếp tập hợp kết quả theo một cột theo thứ tự tăng dần và sau đó theo cột khác theo thứ tự giảm dần
Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC, column2 DESC;
Trong trường hợp này, mệnh đề
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
- Đầu tiên, sắp xếp tập hợp kết quả theo các giá trị trong
9 theo thứ tự tăng dần
Code language: SQL [Structured Query Language] [sql]ORDER BY column1 ASC;
- Sau đó, sắp xếp tập hợp kết quả đã sắp xếp theo các giá trị trong
8 theo thứ tự giảm dần. Lưu ý rằng thứ tự của các giá trị trong
Code language: SQL [Structured Query Language] [sql]ORDER BY column1;
9 sẽ không thay đổi trong bước này, chỉ thứ tự của các giá trị trong
Code language: SQL [Structured Query Language] [sql]ORDER BY column1 ASC;
8 thay đổi
Code language: SQL [Structured Query Language] [sql]ORDER BY column1;
Khi thực thi câu lệnh
1 với mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8, MySQL luôn đánh giá mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
8 sau mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
7 vàCode language: SQL [Structured Query Language] [sql]
ORDER BY column1, column2;
1Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
MySQL ORDER BY ví dụ
Chúng tôi sẽ sử dụng bảng
9 từ cơ sở dữ liệu mẫu để minh họaCode language: SQL [Structured Query Language] [sql]
ORDER BY column1, column2;
A] Sử dụng mệnh đề ORDER BY của MySQL để sắp xếp kết quả được đặt theo một cột ví dụ
Truy vấn sau sử dụng mệnh đề
8 để sắp xếp khách hàng theo họ của họ theo thứ tự tăng dầnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
đầu ra
Code language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
Nếu bạn muốn sắp xếp khách hàng theo họ theo thứ tự giảm dần, bạn sử dụng
5 sau cộtCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
2 trong mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC, column2 DESC;
8 như được hiển thị trong truy vấn sauCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Code language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname DESC;
đầu ra
0Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
B] Sử dụng mệnh đề ORDER BY của MySQL để sắp xếp tập hợp kết quả theo nhiều cột ví dụ
Nếu bạn muốn sắp xếp khách hàng theo họ theo thứ tự giảm dần và sau đó theo tên theo thứ tự tăng dần, bạn chỉ định cả
5 và
ORDER BY column1 ASC;
Code language: SQL [Structured Query Language] [sql]
4 trong các cột tương ứng này như sauCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
1Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
đầu ra
2Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Trong ví dụ này, mệnh đề
8 sắp xếp tập kết quả theo họ theo thứ tự giảm dần trước rồi sắp xếp tập kết quả đã sắp xếp theo tên theo thứ tự tăng dần để tạo ra tập kết quả cuối cùngCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
C] Sử dụng mệnh đề ORDER BY của MySQL để sắp xếp một tập hợp kết quả theo một ví dụ về biểu thức
Xem bảng
7 sau đây từ cơ sở dữ liệu mẫuCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC, column2 DESC;
Truy vấn sau đây chọn các mục hàng đặt hàng từ bảng
7. Nó tính toán tổng phụ cho từng mục hàng và sắp xếp tập kết quả dựa trên tổng phụCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC, column2 DESC;
3Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
4Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Để làm cho truy vấn dễ đọc hơn, bạn có thể gán biểu thức trong mệnh đề
1 một bí danh cột và sử dụng bí danh cột đó trong mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8 như được hiển thị trong truy vấn sauCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
5Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
6Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Trong ví dụ này, chúng tôi sử dụng
1 làm bí danh cột cho biểu thứcCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
2 và sắp xếp tập hợp kết quả theo bí danhCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
1Code language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
Vì MySQL đánh giá mệnh đề
1 trước mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8, nên bạn có thể sử dụng bí danh cột được chỉ định trong mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
1 trong mệnh đềCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Sử dụng mệnh đề ORDER BY của MySQL để sắp xếp dữ liệu bằng danh sách tùy chỉnh
Hàm
8 có cú pháp như sauCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
7Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Hàm
8 trả về vị trí của str trong danh sách str1, str2, …. Nếu str không có trong danh sách, hàmCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
8 trả về 0. Ví dụ: truy vấn sau đây trả về 1 vì vị trí của chuỗi 'A' là vị trí đầu tiên trong danh sách
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
Code language: SQL [Structured Query Language] [sql]
1,Code language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
2 vàCode language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
3Code language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
8Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
đầu ra
9Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
Và ví dụ sau trả về 2
0Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
đầu ra
1Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Hãy lấy một ví dụ thực tế hơn
Xem bảng
4 sau đây từ cơ sở dữ liệu mẫuCode language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
Giả sử bạn muốn sắp xếp các đơn đặt hàng dựa trên trạng thái của chúng theo thứ tự sau
- Đang tiến hành
- Đang chờ
- Đã hủy
- giải quyết
- tranh chấp
- vận chuyển
Để làm điều này, bạn có thể sử dụng hàm
8 để ánh xạ từng trạng thái đơn hàng thành một số và sắp xếp kết quả theo kết quả của hàmCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
8Code language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname;
2Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
3Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
ĐẶT HÀNG MySQL THEO và NULL
Trong MySQL,
7 xuất hiện trước các giá trị không NULL. Do đó, khi bạn đặt mệnh đềCode language: plaintext [plaintext]
+-----------------+------------------+ | contactLastname | contactFirstname | +-----------------+------------------+ | Accorti | Paolo | | Altagar,G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
8 với tùy chọnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
4, thìCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
0 sẽ xuất hiện đầu tiên trong tập kết quảCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname DESC;
Ví dụ: truy vấn sau sử dụng mệnh đề
8 để sắp xếp nhân viên theo các giá trị trong cộtCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
2Code language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname DESC;
4Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
đầu ra
5Code language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
Tuy nhiên, nếu bạn sử dụng
8 với tùy chọnCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 DESC;
5, thìCode language: SQL [Structured Query Language] [sql]
ORDER BY column1 ASC;
0 sẽ xuất hiện cuối cùng trong tập hợp kết quả. Ví dụCode language: SQL [Structured Query Language] [sql]
SELECT contactLastname, contactFirstname FROM customers ORDER BY contactLastname DESC;