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_list

TỪ

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

)

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ã:

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

)

 

ĐẶ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ị trong column1 sẽ không thay đổi trong bước này, chỉ thứ tự của các giá trị trong column2 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.

 

< p class = "hljs-keyword"> CHỌN

contactLastname, contactFirstname

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, contactFirstname

TỪ

khách hàng

ĐẶT HÀNG

THEO

contactLastname

DESC

;

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 ASC trong các cột tương ứng này như sau:

 

CHỌN

contactLastname, contactFirstname

TỪ

khách hàng

ĐẶT HÀNG

THEO

contactLastname

DESC

, contactFirstname

ASC

;

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 . order_details_table

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ỗi

TỪ

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ự * priceEach

AS

tổng phụ

TỪ

chi tiết đơn hàng

ĐƠN ĐẶT HÀNG

THEO

tổng phụ

MÔ TẢ

;

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' '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:

 

CHỌN

LĨNH VỰC

(

'B'

,

'A' < / p>,

'B'

,

'C'

);

< p class = "shcb-language__label"> Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

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.

bảng đơn hàng

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áoTo

TỪ

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áoTo

TỪ

người lao động

ĐƠN ĐẶT HÀNG

THEO

reportTo

DESC

;

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 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?


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

alt

  • 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/view

    Thiế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/2neuMuE

    FANPAGE : 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

Xem Thêm  8. Lỗi và ngoại lệ - Tài liệu Python 3.10.5 - python thử lỗi ngoại lệ

By ads_php