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

MySQL: จำกัดผลลัพธ์เฉพาะ 5 แถวล่าสุด

การดึงเฉพาะ N แถวล่าสุด

ใช้ ORDER BY id DESC LIMIT 5 - เรียงจากใหม่ไปเก่า แล้วเอา 5 แถวแรก

ตัวอย่าง

mysql> create table DemoTable820(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerName varchar(100) );
Query OK, 0 rows affected (0.53 sec)
mysql> insert into DemoTable820(CustomerName) values('Chris');
mysql> insert into DemoTable820(CustomerName) values('Robert');
mysql> insert into DemoTable820(CustomerName) values('David');
mysql> insert into DemoTable820(CustomerName) values('Bob');
mysql> insert into DemoTable820(CustomerName) values('Carol');
mysql> insert into DemoTable820(CustomerName) values('Adam');

คำสั่งดึง 5 แถวล่าสุด

mysql> select * from DemoTable820 order by Id DESC LIMIT 5;

ผลลัพธ์:

+----+--------------+
| Id | CustomerName |
+----+--------------+
| 6  | Adam         |
| 5  | Carol        |
| 4  | Bob          |
| 3  | David        |
| 2  | Robert       |
+----+--------------+

รูปแบบอื่นๆ

-- 5 แถวแรกเก่าสุด
SELECT * FROM DemoTable820 ORDER BY Id ASC LIMIT 5;

-- ข้าม 2 แถวแรก แล้วเอา 3 แถว (Pagination)
SELECT * FROM DemoTable820 ORDER BY Id DESC LIMIT 3 OFFSET 2;

-- ใช้กับวันที่
SELECT * FROM orders ORDER BY created_at DESC LIMIT 10;

สรุป

ORDER BY pk DESC LIMIT N เป็นวิธีมาตรฐานดึง N แถวล่าสุด ต้องมี Primary Key หรือคอลัมน์ที่บ่งบอกลำดับเวลา