Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm giá trị MIN và MAX trong một truy vấn MySQL đơn lẻ

Để lấy cả giá trị nhỏ nhất (MIN) và lớn nhất (MAX) trong một truy vấn đơn lẻ, bạn có thể sử dụng UNION kết hợp hai truy vấn con (subquery) hoặc dùng CASE WHEN. Cách dùng UNION như sau:

Ví dụ minh họa

Tạo bảng giá:

mysql> create table DemoTable ( 
    Price int 
);

Chèn dữ liệu:

mysql> insert into DemoTable values(88);
mysql> insert into DemoTable values(100);
mysql> insert into DemoTable values(98);
mysql> insert into DemoTable values(120);

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+-------+
| Price |
+-------+
| 88    |
| 100   |
| 98    |
| 120   |
+-------+

Truy vấn UNION lấy MIN và MAX

mysql> select Price from DemoTable where Price=(select min(Price) from DemoTable) 
UNION 
select Price from DemoTable where Price=(select max(Price) from DemoTable);

Kết quả:

+-------+
| Price |
+-------+
| 88    |
| 120   |
+-------+

Giải thích:

  • Truy vấn con 1: Tìm hàng có Price = MIN(Price) → 88
  • Truy vấn con 2: Tìm hàng có Price = MAX(Price) → 120
  • UNION: Gộp 2 kết quả, tự động loại trùng (nếu MIN = MAX)

Cách thay thế hiệu quả hơn: Sử dụng SELECT MIN(Price) AS MinPrice, MAX(Price) AS MaxPrice FROM DemoTable; trả về 1 hàng 2 cột, hiệu suất tốt hơn vì chỉ quét bảng 1 lần thay vì 3 lần như UNION.