Sử dụng mệnh đề WHERE ... NOT IN (SELECT MAX(...)) kết hợp ORDER BY ... DESC để loại bỏ giá trị lớn nhất.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable (Amount INT); Query OK, 0 rows affected (0.50 sec)
mysql> INSERT INTO DemoTable VALUES(10), (20), (30), (40); Query OK, 4 rows affected (0.17 sec)
Truy vấn loại bỏ MAX và sắp xếp giảm
mysql> SELECT * FROM DemoTable
-> WHERE Amount NOT IN (SELECT MAX(Amount) FROM DemoTable)
-> ORDER BY Amount DESC;
Kết quả:
+--------+ | Amount | +--------+ | 30 | | 20 | | 10 | +--------+ 3 rows in set (0.05 sec)
Cách thay thế hiệu quả hơn: SELECT * FROM DemoTable ORDER BY Amount DESC LIMIT 1, 18446744073709551615 (bỏ qua 1 hàng đầu, lấy tất cả hàng còn lại).