MARIADB USEFUL RESOURCES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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 ASC hay DESC, 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 BY trong 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 ASCDESC.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!

Cùng chuyên mục:

Biểu thức chính quy (Regular Expression) trong MariaDB

Biểu thức chính quy (Regular Expression) trong MariaDB

Quản lý dữ liệu trùng lặp trong MariaDB

Quản lý dữ liệu trùng lặp trong MariaDB

Dãy số (Sequences) trong MariaDB

Dãy số (Sequences) trong MariaDB

Table Cloning trong MariaDB

Table Cloning trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Indexes & Statistics Tables trong MariaDB

Indexes & Statistics Tables trong MariaDB

Alter Command trong MariaDB

Alter Command trong MariaDB

Transactions trong MariaDB

Transactions trong MariaDB

Biểu thức chính quy trong MariaDB

Biểu thức chính quy trong MariaDB

Giá trị NULL trong MariaDB

Giá trị NULL trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề LIKE trong MariaDB

Mệnh đề LIKE trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Mệnh đề WHERE trong MariaDB

Mệnh đề WHERE trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Tìm hiểu Select Database trong MariaDB

Tìm hiểu Select Database trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Cú pháp PHP trong MariaDB

Cú pháp PHP trong MariaDB

Top