ใช้ ORDER BY ... DESC LIMIT 1,1 ข้ามอันดับ 1 (offset 1) แล้วเอา 1 แถว
สร้างตารางและเพิ่มคะแนน
mysql> create table DemoTable ( StudentScore int ); Query OK, 0 rows affected (0.56 sec) mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(69); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(97); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(99); Query OK, 1 row affected (0.12 sec)
คิวรีหาอันดับ 2
mysql> select * from DemoTable order by StudentScore DESC limit 1,1;
+--------------+ | StudentScore | +--------------+ | 97 | +--------------+ 1 row in set (0.00 sec)
อธิบาย LIMIT: LIMIT offset, count → offset=1 (ข้าม 1 แถวแรก), count=1 (เอา 1 แถว)
ข้อควรระวัง: หากค่าสูงสุดซ้ำหลายแถว วิธีนี้อาจให้ผลไม่ตรงตามต้องการ ควรใช้ DISTINCT หรือ Window Function (MySQL 8.0+)