Mệnh đề ORDER BY trong MariaDB
Trong MariaDB, mệnh đề ORDER BY được sử dụng để sắp xếp kết quả của truy vấn theo một hoặc nhiều cột nhất định. Mặc định, dữ liệu sẽ được sắp xếp theo thứ tự tăng dần (ASC) trừ khi có chỉ định sắp xếp theo thứ tự giảm dần (DESC).

Giới thiệu về mệnh đề ORDER BY trong MariaDB
Mệnh đề ORDER BY luôn xuất hiện ở cuối câu lệnh SQL vì nó hoạt động trên bảng kết quả sau khi dữ liệu đã được truy vấn. Mệnh đề này có thể được sử dụng với nhiều câu lệnh khác nhau như SELECT, UPDATE, DELETE.
Lưu ý quan trọng:
- Nếu không chỉ định
ASChayDESC, mặc định MariaDB sẽ sắp xếp theo thứ tự tăng dần (ASC). - Không thể sử dụng số nguyên để xác định cột cần sắp xếp trong
ORDER BY. - Không thể dùng
ORDER BYtrong subquery hoặc trước các hàm tập hợp (GROUP BY).
Cú pháp của ORDER BY trong MariaDB
SELECT cot1, cot2, ... FROM ten_bang ORDER BY cot1 [ASC | DESC], cot2 [ASC | DESC];
Trong đó:
Bài viết này được đăng tại [free tuts .net]
cot1,cot2: Các cột được sử dụng để sắp xếp dữ liệu.ASC: Sắp xếp tăng dần (mặc định).DESC: Sắp xếp giảm dần.
Sử dụng ORDER BY trong giao diện dòng lệnh (Command Prompt) trong MariaDB
Ví dụ: Sắp xếp danh sách sản phẩm theo nhà sản xuất theo thứ tự tăng dần (ASC).
root@host# mysql -u root -p Enter password:******* mysql> USE PRODUCTS; Database changed mysql> SELECT * FROM products_tbl ORDER BY product_manufacturer ASC;
Kết quả hiển thị:
| ID_number | Tên sản phẩm | Nhà sản xuất |
|---|---|---|
| 56789 | SuperBlast 400 | LMN Corp |
| 67891 | Zoomzoom 5000 | QFT Corp |
| 12347 | Orbitron 1000 | XYZ Corp |
???? Giải thích:
- Dữ liệu đã được sắp xếp theo nhà sản xuất từ A → Z (
LMN Corp,QFT Corp,XYZ Corp).
Sử dụng ORDER BY trong PHP trong MariaDB
Ví dụ 1: Truy vấn dữ liệu và sắp xếp theo nhà sản xuất giảm dần (DESC)
Ta có thể sử dụng ORDER BY trong PHP để sắp xếp dữ liệu trước khi hiển thị.
???? Lưu ý: mysql_query() đã lỗi thời, nên sử dụng mysqli hoặc PDO thay thế.
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'rootpassword';
$dbname = 'PRODUCTS';
// Kết nối đến cơ sở dữ liệu
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
// Câu lệnh SELECT sử dụng ORDER BY
$sql = "SELECT product_id, product_name, product_manufacturer, ship_date
FROM products_tbl
ORDER BY product_manufacturer DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Product ID: " . $row['product_id'] . "<br>";
echo "Tên sản phẩm: " . $row['product_name'] . "<br>";
echo "Nhà sản xuất: " . $row['product_manufacturer'] . "<br>";
echo "Ngày giao hàng: " . $row['ship_date'] . "<br>";
echo "--------------------------------<br>";
}
} else {
echo "Không tìm thấy kết quả.";
}
// Đóng kết nối
$conn->close();
?>
Giải thích:
- Dữ liệu được sắp xếp theo nhà sản xuất giảm dần (XYZ → QFT → LMN).
- Hiển thị từng sản phẩm cùng với thông tin chi tiết.
Kết quả hiển thị trên trình duyệt:
Product ID: 12347 Tên sản phẩm: Orbitron 1000 Nhà sản xuất: XYZ Corp Ngày giao hàng: 01/01/17 -------------------------------- Product ID: 67891 Tên sản phẩm: Zoomzoom 5000 Nhà sản xuất: QFT Corp Ngày giao hàng: 01/01/17 -------------------------------- Product ID: 56789 Tên sản phẩm: SuperBlast 400 Nhà sản xuất: LMN Corp Ngày giao hàng: 01/04/17 --------------------------------
Dữ liệu được sắp xếp theo thứ tự giảm dần của product_manufacturer (XYZ → QFT → LMN).
Một số ví dụ nâng cao với ORDER BY trong MariaDB
Sắp xếp theo nhiều cột
SELECT * FROM products_tbl ORDER BY product_manufacturer ASC, product_name DESC;
Sắp xếp theo nhà sản xuất tăng dần, nếu trùng nhà sản xuất thì sắp xếp theo tên sản phẩm giảm dần.
Sắp xếp theo ngày giao hàng giảm dần
SELECT * FROM products_tbl ORDER BY ship_date DESC;
Lấy sản phẩm có ngày giao hàng mới nhất lên trước.
Giới hạn số lượng kết quả và sắp xếp
SELECT * FROM products_tbl ORDER BY ship_date DESC LIMIT 5;
Chỉ lấy 5 sản phẩm có ngày giao hàng gần nhất.
Kết bài
ORDER BY giúp sắp xếp dữ liệu theo thứ tự mong muốn.Có thể sử dụng nhiều cột để sắp xếp với ASC và DESC.Mặc định là ASC, nếu muốn giảm dần cần chỉ rõ DESC.MariaDB không cho phép sử dụng số nguyên để xác định cột trong ORDER BY. Khi lập trình với PHP, nên dùng mysqli hoặc PDO để đảm bảo bảo mật.
Ghi nhớ:
Dùng ORDER BY ASC để sắp xếp tăng dần (A → Z, 1 → 9, ngày cũ → ngày mới).
Dùng ORDER BY DESC để sắp xếp giảm dần (Z → A, 9 → 1, ngày mới → ngày cũ).
Biết cách sử dụng ORDER BY giúp bạn dễ dàng tổ chức và hiển thị dữ liệu theo thứ tự mong muốn!

Thiết lập ID tăng tự động với Identity trong SQL Server
Khóa ngoại (Foreign Key) trong MySQL
Mô hình thực thể mối kết hợp (ER)
Gộp dữ liệu với UNION và UNION ALL trong SQL
Hàm Hàm TO_DATE trong Oracle
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng