การจัดเรียงข้อมูลจากมากไปน้อย (Descending) แล้วจำกัดจำนวนแถวที่ต้องการ ใช้ ORDER BY ... DESC LIMIT n
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100) );
Query OK, 0 rows affected (0.59 sec)
เพิ่มข้อมูล 5 แถว
mysql> insert into DemoTable(UserName) values('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(UserName) values('Robert');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(UserName) values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(UserName) values('David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(UserName) values('Mike');
Query OK, 1 row affected (0.10 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | Chris | | 2 | Robert | | 3 | Bob | | 4 | David | | 5 | Mike | +--------+----------+ 5 rows in set (0.00 sec)
คำสั่ง เรียง UserId มากไปน้อย แล้วเอา 3 แถวแรก
mysql> select * from DemoTable order by UserId DESC LIMIT 0, 3;
ผลลัพธ์
+--------+----------+ | UserId | UserName | +--------+----------+ | 5 | Mike | | 4 | David | | 3 | Bob | +--------+----------+ 3 rows in set (0.00 sec)
คำอธิบาย LIMIT:
LIMIT 3= เอา 3 แถวแรก (เท่ากับ LIMIT 0, 3)LIMIT 2, 3= ข้าม 2 แถว แล้วเอา 3 แถว (ใช้สำหรับ Pagination)LIMIT offset, row_countรูปแบบเต็ม
ประโยชน์: ใช้สำหรับแสดง "ล่าสุด 3 รายการ" "ยอดขายสูงสุด 10 อันดับแรก" ฯลฯ