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

ORDER BY DESC แล้ว LIMIT 3 แถวแรกใน MySQL

การจัดเรียงข้อมูลจากมากไปน้อย (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 อันดับแรก" ฯลฯ