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

Chọn các hàng trừ hàng đầu tiên khi sắp xếp giảm dần trong MySQL

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