Hướng dẫn này chỉ cho bạn cách sử dụng mệnh đề ORDER BY trong MySQL để sắp xếp các hàng trong kết quả được đặt theo một hoặc nhiều cột theo thứ tự tăng dần hoặc giảm dần.
Bạn đang xem : đặt hàng theo mysql
Tóm tắt : trong này hướng dẫn, bạn sẽ học cách sắp xếp các hàng trong tập kết quả bằng mệnh đề MySQL ORDER BY
.
Giới thiệu về mệnh đề ORDER BY trong MySQL
Khi bạn sử dụng câu lệnh SELECT
để truy vấn dữ liệu từ bảng, thứ tự của các hàng trong tập kết quả là không xác định. Để sắp xếp các hàng trong tập kết quả, bạn thêm mệnh đề ORDER BY
vào câu lệnh SELECT
.
Phần sau minh họa cú pháp của Mệnh đề ORDER BY
:
CHỌN
select_listTỪ
tên_bảngĐẶT HÀNG
THEO
column1 [ASC
|DESC
], column2 [ASC
|DESC
], ...;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
< p class = "shcb-language__paren"> (sql
)
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 đề ORDER BY
.
ASC
là viết tắt của tăng dần và DESC
là viết tắt của giảm dần. Bạn sử dụng ASC
để sắp xếp tập hợp kết quả theo thứ tự tăng dần và DESC
để sắp xếp tập kết quả theo thứ tự giảm dần.
Đây ĐẶT HÀNG THEO Mệnh đề
sắp xếp kết quả được đặt theo các giá trị trong column1
theo thứ tự tăng dần:
ĐẶT HÀNG THEO ASC cột 1;
Ngôn ngữ mã:
SQL (Truy vấn có cấu trúc Ngôn ngữ)
(
sql
) p >
Và mệnh đề ORDER BY
này sắp xếp kết quả được đặt theo các giá trị trong column1
theo thứ tự giảm dần:
ĐẶT HÀNG THEO Cột 1 DESC;
Ngôn ngữ mã: p >
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Theo mặc định, mệnh đề ORDER BY
sử dụng ASC < / code> 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 đề
ORDER BY
sau đây là tương đương:
ORDER BY column1 ASC;
Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
và
ĐẶT HÀNG THEO column1;
Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Nếu bạn muốn sắp xếp kết quả được đặt theo nhiều cột, bạn chỉ định danh sách được phân tách bằng dấu phẩy trong số các cột trong mệnh đề ORDER BY
:
ORDER BY cột1, column2;
Ngôn ngữ mã:
SQL (Ngôn ngữ Truy vấn Có cấu trúc)
(
sql
)
Trong trong trường hợp này, mệnh đề ORDER BY
sắp xếp kết quả được đặt bởi column1
theo thứ tự tăng dần trước và sắp xếp kết quả được sắp xếp theo column2
theo thứ tự tăng dần.
Có thể sắp xếp kết quả được đặt theo một cột theo thứ tự tăng dần và sau đó theo một cột khác theo thứ tự giảm dần:
< code class = "hljs language-sql"> ĐẶT HÀNG BẰNG CÁCH cột 1 ASC, column2 DESC;
Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Trong trường hợp này, ORDER BYMệnh đề
:
- Đầu tiên, hãy sắp xếp kết quả được đặt theo các giá trị trong
column1
theo thứ tự tăng dần. - Sau đó, sắp xếp kết quả được sắp xếp theo các giá trị trong
column2
theo thứ tự giảm dần. Lưu ý rằng thứ tự của các giá trị trongcolumn1
sẽ không thay đổi trong bước này, chỉ thứ tự của các giá trị trongcolumn2
mới thay đổi.
Khi thực thi câu lệnh SELECT
với mệnh đề ORDER BY
, MySQL luôn đánh giá mệnh đề ORDER BY
sau FROM
và các mệnh đề SELECT
:
Ví dụ về ĐẶT HÀNG trong MySQL
Chúng tôi sẽ sử dụng bảng khách hàng
từ cơ sở dữ liệu mẫu để trình diễn.
A) Sử dụng mệnh đề ORDER BY trong MySQL để sắp xếp kết quả được đặt theo ví dụ một cột
Truy vấn sau sử dụng Mệnh đề ORDER BY
để sắp xếp khách hàng theo họ của họ theo thứ tự tăng dần.
contactLastname, contactFirstname
< p class = "hljs-keyword"> CHỌN
TỪ
khách hàngĐẶT HÀNG
THEO
contactLastname;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
< span class = "sql"> Dùng thử
Đầu ra:
+ ----------------- + ------------------ + | contactLastname | contactFirstname | + ----------------- + ------------------ + | Accorti | Paolo | | Altagar, G M | Raanan | | Andersen | Mel | | Anton | Carmen | | Ashworth | Rachel | | Barajas | Miguel | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
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 DESC
sau cột contactLastname
trong mệnh đề ORDER BY
như được hiển thị trong truy vấn sau:
CHỌN
contactLastname, contactFirstnameTỪ
khách hàngĐẶT HÀNG
THEO
contactLastnameDESC
;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Hãy dùng thử
Ouptut:
+ ----------------- + ------------- ----- + | contactLastname | contactFirstname | + ----------------- + ------------------ + | Trẻ trung | Jeff | | Trẻ trung | Julie | | Trẻ trung | Mary | | Trẻ trung | Dorothy | | Yoshido | Juri | | Người đi bộ | Brydey | | Victorino | Wendy | | Urs | Braun | | Tseng | Jerry | ....
Ngôn ngữ mã:
plaintext
(
plaintext
)
B) Sử dụng MySQL Mệnh đề ORDER BY để sắp xếp kết quả được đặt 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ả DESC
và ASC
trong các cột tương ứng này như sau:
CHỌN
contactLastname, contactFirstnameTỪ
khách hàngĐẶT HÀNG
THEO
contactLastnameDESC
, contactFirstnameASC
;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Dùng thử
Kết quả:
+ ----------------- + ------------------ + | contactLastname | contactFirstname | + ----------------- + ------------------ + | Trẻ trung | Dorothy | | Trẻ trung | Jeff | | Trẻ trung | Julie | | Trẻ trung | Mary | | Yoshido | Juri | | Người đi bộ | Brydey | | Victorino | Wendy | | Urs | Braun | | Tseng | Jerry | | Tonini | Daniel | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
Trong ví dụ này, Mệnh đề ORDER BY
sắp xếp kết quả theo họ theo thứ tự giảm dần trước rồi sắp xếp kết quả được 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ùng.
C) Sử dụng mệnh đề ORDER BY của MySQL để sắp xếp kết quả được đặt theo ví dụ về biểu thức
Xem bảng orderdetails
sau từ cơ sở dữ liệu mẫu . P >
Truy vấn sau đây chọn các chi tiết đơn hàng từ bảng orderdetails
. Nó tính tổng phụ cho từng mục hàng và sắp xếp tập hợp kết quả dựa trên tổng phụ.
CHỌN
orderNumber, số thứ tự, số lượng Đặt hàng * giá MỗiTỪ
chi tiết đơn hàngĐẶT HÀNG
THEO
số lượng -language__name "> SQL (Ngôn ngữ truy vấn có cấu trúc)(
sql
)
Dùng thử
+ ------------- + ----------------- + ------ ----------------------- + | orderNumber | orderlinenumber | số lượngĐặt hàng * giáTừng | + ------------- + ----------------- + ----------------- ------------ + | 10403 | 9 | 11503.14 | | 10405 | 5 | 11170,52 | | 10407 | 2 | 10723,60 | | 10404 | 3 | 10460,16 | | 10312 | 3 | 10286.40 | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
Để làm cho truy vấn nhiều hơn có thể đọc được, bạn có thể gán biểu thức trong mệnh đề SELECT
a bí danh cột và sử dụng bí danh cột đó trong mã ORDER BY > mệnh đề như được hiển thị trong truy vấn sau:
CHỌN
orderNumber, orderLineNumber, số lượng Có thứ tự * priceEachAS
tổng phụTỪ
chi tiết đơn hàngĐƠN ĐẶT HÀNG
THEO
tổng phụMÔ TẢ
; mã >Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Hãy dùng thử
+ ---------- --- + ----------------- + ---------- + | orderNumber | orderLineNumber | tổng phụ | + ------------- + ----------------- + ---------- + | 10403 | 9 | 11503.14 | | 10405 | 5 | 11170,52 | | 10407 | 2 | 10723,60 | | 10404 | 3 | 10460,16 | | 10312 | 3 | 10286.40 | | 10424 | 6 | 10072,00 | | 10348 | 8 | 9974.40 | | 10405 | 3 | 9712.04 | | 10196 | 5 | 9571.08 | | 10206 | 6 | 9568,73 | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
Trong ví dụ này, chúng tôi sử dụng tổng phụ
làm bí danh cột cho biểu thức numberOrdered * priceEach
và sắp xếp kết quả được đặt theo bí danh tổng phụ
.
Vì MySQL đánh giá mệnh đề SELECT
trước mệnh đề ORDER BY
, bạn có thể sử dụng bí danh cột được chỉ định trong mệnh đề SELECT
trong < code> Mệnh đề ORDER BY .
Sử dụng mệnh đề ORDER BY trong MySQL để sắp xếp dữ liệu bằng danh sách tùy chỉnh
Hàm FIELD ()
có cú pháp sau:
FIELD (str, str1, str2, ...)
< / p>Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
FIELD () < / code> hàm trả về vị trí của str trong danh sách str1, str2,…. Nếu str không có trong danh sách, hàm
FIELD ()
trả về 0. Ví dụ: truy vấn sau trả về 1 vì vị trí của chuỗi 'A' là vị trí đầu tiên trong danh sách 'A'
, 'B'
và 'C'
:
CHỌN
LĨNH VỰC
('A'
,'A'
,'B'
,'C'
);Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Đầu ra:
+ ---- ---------------------- + | FIELD ('A', 'A', 'B', 'C') | + -------------------------- + | 1 | + -------------------------- + 1 hàng trong bộ (0,00 giây)
Ngôn ngữ mã:
plaintext
(
plaintext
)
Và ví dụ sau trả về 2:
< p class = "shcb-language__label"> Ngôn ngữ mã:
CHỌN p>
LĨNH VỰC
('B'
,'A' < / p>,
'B'
,'C'
);SQL (Ngôn ngữ truy vấn có cấu trúc)
( p >
sql
)
Đầu ra:
+ ------------------------- + | FIELD ('B', 'A', 'B', 'C') | + ------------------------- + | 2 | + ------------------------- + 1 hàng trong bộ (0,00 giây)
Ngôn ngữ mã:
plaintext
(
plaintext
)
Hãy lấy một ví dụ thực tế hơn.
Xem bảng đơn hàng
sau từ cơ sở dữ liệu mẫu.
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 xử lý
- Đang chờ
- Đã hủy
- Đã giải quyết < / li>
- Bị tranh chấp
- Đã giao hàng
Để thực hiện việc này, bạn có thể sử dụng hàm FIELD ()
để á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àm FIELD ()
:
SELEC T
orderNumber,trạng thái
TỪ
đơn đặt hàngĐẶT HÀNG
THEO
LĨNH VỰC
(trạng thái
,'Đang xử lý'
,'Tạm dừng'
,'Đã hủy'
,'Đã giải quyết'
,'Tranh chấp'
,'Đã giao hàng'
);Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Dùng thử
+ ------------- + ------------ + | orderNumber | tình trạng | + ------------- + ------------ + | 10425 | Đang xử lý | | 10421 | Đang xử lý | | 10422 | Đang xử lý | | 10420 | Đang xử lý | | 10424 | Đang xử lý | | 10423 | Đang xử lý | | 10414 | Đang chờ | | 10401 | Đang chờ | | 10334 | Đang chờ | | 10407 | Đang chờ | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
MySQL ORDER BY và NULL
Trong MySQL, NULL
đứng trước các giá trị không phải NULL. Do đó, khi bạn đặt mệnh đề ORDER BY
với tùy chọn ASC
, NULLs
sẽ xuất hiện đầu tiên trong tập kết quả.
Đối với ví dụ, truy vấn sau sử dụng mệnh đề ORDER BY
để sắp xếp nhân viên theo các giá trị trong cột reportTo
:
CHỌN
firstName, lastName, báo cáoToTỪ
người lao độngĐƠN ĐẶT HÀNG
THEO
reportTo;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Đầu ra:
+ ----------- + ----------- + ----------- + | firstName | lastName | báo cáoTo | + ----------- + ----------- + ----------- + | Diane | Murphy | NULL | | Mary | Patterson | 1002 | | Jeff | Firrelli | 1002 | | William | Patterson | 1056 | | Gerard | Bondur | 1056 | ...
Ngôn ngữ mã:
plaintext
(
plaintext
)
Tuy nhiên, nếu bạn sử dụng ORDER BY
với tùy chọn DESC
, NULLs
sẽ xuất hiện cuối cùng trong tập kết quả. Ví dụ:
CHỌN
firstName, lastName, báo cáoToTỪ
người lao độngĐƠN ĐẶT HÀNG
THEO
reportToDESC
; code >Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Kết quả:
+ ----------- + ----------- + ----------- + | firstName | lastName | báo cáoTo | + ----------- + ----------- + ----------- + | Yoshimi | Kato | 1621 | | Leslie | Jennings | 1143 | | Leslie | Thompson | 1143 | | Julie | Firrelli | 1143 | | .... | Mami | Nishi | 1056 | | Mary | Patterson | 1002 | | Jeff | Firrelli | 1002 | | Diane | Murphy | NULL | + ----------- + ----------- + ----------- + 23 hàng trong bộ (0,00 giây)
Ngôn ngữ mã:
plaintext
(
plaintext
)
Tóm tắt
- Sử dụng mệnh đề
ORDER BY
để sắp xếp kết quả được đặt theo một hoặc nhiều cột. - Sử dụng mã
ASC > tùy chọn sắp xếp tập hợp kết quả theo thứ tự tăng dần và tùy chọn
DESC
để sắp xếp tập hợp kết quả theo thứ tự giảm dần. - Mệnh đề
ORDER BY
được đánh giá sau các mệnh đềFROM
vàSELECT
. - Trong MySQL,
NULL
thấp hơn các giá trị không phải NULL
Hướng dẫn này có hữu ích không?
p >
Xem thêm những thông tin liên quan đến chủ đề đặt hàng bằng mysql
Chuyển website bán hàng từ mysql sang mysqli
- Tác giả: Hiếu Tutorial with live project
- Ngày đăng: 2020-04-16
- Đánh giá: 4 ⭐ ( 8612 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Video hướng dẫn các bạn download source về và làm theo hướng dẫn để có thể chạy source bằng bản xampp mới nhất hoặc host mới nhất nhé.
Source code webphukiendienthoai bằng PHP :https://drive.google.com/file/d/1DoEJ4E7FOawPG9m5BpFfCObtze75MOy2/viewThiết kế website tại : https://webextrasite.com
Web điện máy PHP : http://bit.ly/2mlgXKJ
Web theo mô hình MVC : http://bit.ly/2AFhZo7
Website bằng Laravel Framework : http://bit.ly/2neuMuEFANPAGE : https://www.facebook.com/webextrasite
FACEBOOK : https://www.facebook.com/hieutruong19
Làm thế nào để MySQL xử lý ĐẶT HÀNG BỞI và GIỚI HẠN trong một truy vấn?
- Tác giả: qastack.vn
- Đánh giá: 5 ⭐ ( 6310 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Nó sẽ đặt hàng trước, sau đó lấy 20. đầu tiên Một cơ sở dữ liệu…
Đồ án Website bán hàng thương mại điện tử bằng PHP & MYSQL
- Tác giả: topcode.vn
- Đánh giá: 4 ⭐ ( 2346 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Mã nguồn Website bán hàng bằng PHP & MYSQL Trang quản trị đầy đủ chức năng Giao diện đẹp dễ dàng sử dụng.
ĐẶT HÀNG MySQL BẰNG TRONG ()
- Tác giả: vie.artfit-prk.com
- Đánh giá: 5 ⭐ ( 6816 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tôi có một mảng PHP với số ID trong đó. Những con số này đã được đặt hàng. Bây giờ tôi muốn lấy kết quả của mình thông qua phương thức IN (), để lấy tất cả các ID. Tuy nhiên, những ID này phải được sắp xếp ...
Source Code Phần mềm quản lý bán hàng viết bằng PHP & MySQL
- Tác giả: sourcecodefree.org
- Đánh giá: 4 ⭐ ( 4749 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Cộng đồng chia sẻ source code free, website, phần mềm, đồ án môn học, luận văn tốt nghiệp miễn phí
ĐẶT HÀNG MySQL BẰNG CASE WHEN
- Tác giả: vn.wsxdn.com
- Đánh giá: 5 ⭐ ( 9859 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Mysql là gì? Tổng hợp thông tin chi tiết nhất về Mysql
- Tác giả: bizflycloud.vn
- Đánh giá: 5 ⭐ ( 2583 lượt đánh giá )
- Khớp với kết quả tìm kiếm: MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hàng đầu trên thế giới và đặc biệt được ưa chuộng trong quá trình xây dựng, phát triển ứng dụng.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình