Sử dụng subquery trong WHERE để tìm giá trị MAX(age), sau đó lọc tất cả hàng có tuổi bằng giá trị đó.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable(Name VARCHAR(100), Age INT);
Query OK, 0 rows affected (0.46 sec)
mysql> INSERT INTO DemoTable VALUES
('Chris',23), ('David',55), ('Bob',53), ('Mike',54), ('Sam',55);
Query OK, 5 rows affected
Truy vấn subquery tìm tuổi max
mysql> SELECT * FROM DemoTable WHERE Age = (SELECT MAX(Age) FROM DemoTable);
Kết quả (2 người 55 tuổi):
+-------+------+ | Name | Age | +-------+------+ | David | 55 | | Sam | 55 | +-------+------+
So sánh với LIMIT: ORDER BY Age DESC LIMIT 1 chỉ trả về 1 hàng (bỏ lỡ Sam). Subquery trả về tất cả hàng chia sẻ giá trị max.
Hiệu năng: Subquery được tối ưu hóa tốt trong MySQL. Với bảng lớn, đảm bảo có index trên cột Age.