ใช้ ORDER BY col1 DESC, col2 DESC LIMIT 1 หาแถวที่มีค่าสูงสุดตามลำดับความสำคัญ
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูล
mysql> CREATE TABLE DemoTable (Num1 INT, Num2 INT); mysql> INSERT INTO DemoTable VALUES (60, 249), (59, 250);
2. เรียง Num2 DESC ก่อน แล้ว Num1 DESC แล้ว LIMIT 1
mysql> SELECT * FROM DemoTable
-> ORDER BY Num2 DESC, Num1 DESC LIMIT 1;
ผลลัพธ์
+------+------+ | Num1 | Num2 | +------+------+ | 59 | 250 | +------+------+
เหตุผล: Num2 สูงสุดคือ 250 (แถวที่ 2) → เลือกแถวนั้นเลย ไม่ต้องดู Num1
กรณี Num2 เท่ากัน จึงดู Num1
INSERT INTO DemoTable VALUES (60, 250); -- ตอนนี้มี (59,250) และ (60,250) SELECT * FROM DemoTable ORDER BY Num2 DESC, Num1 DESC LIMIT 1; -- ผลลัพธ์: (60, 250) เพราะ Num1 มากกว่า
การประยุกต์: หา Top-N แบบหลายเกณฑ์
-- หา 3 อันดับแรก: เรียง Score DESC, แล้ว Age ASC (อายุน้อยกว่าชนะ) SELECT * FROM players ORDER BY Score DESC, Age ASC LIMIT 3;