Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เลือกข้อมูลยกเว้นแถวแรกเมื่อเรียงลำดับจากมากไปน้อยใน MySQL

ใช้ WHERE column NOT IN (SELECT MAX(column) FROM table) แล้ว ORDER BY DESC

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> Amount INT
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES(10), (20), (30), (40);

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+--------+
| Amount |
+--------+
| 10     |
| 20     |
| 30     |
| 40     |
+--------+

คำสั่งเลือกยกเว้นค่าสูงสุด แล้วเรียงจากมากไปน้อย

mysql> SELECT * FROM DemoTable
    -> WHERE Amount NOT IN (SELECT MAX(Amount) FROM DemoTable)
    -> ORDER BY Amount DESC;

ผลลัพธ์ (ไม่มี 40, เรียง 30, 20, 10):

+--------+
| Amount |
+--------+
| 30     |
| 20     |
| 10     |
+--------+

คำอธิบาย: Subquery หา MAX(Amount) = 40 | NOT IN กรองทิ้ง 40 | ORDER BY DESC เรียงที่เหลือจากมากไปน้อย