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

แสดงข้อมูลเรียงลำดับ DESC และข้ามบางแถวด้วย LIMIT OFFSET ใน MySQL

การใช้ LIMIT OFFSET เพื่อข้ามแถวและจำกัดจำนวนผลลัพธ์

ใน MySQL เราสามารถใช้ LIMIT offset, row_count เพื่อข้ามจำนวนแถวที่กำหนด (offset) และแสดงจำนวนแถวที่ต้องการ (row_count) หลังจากเรียงลำดับแล้ว

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    Id INT,
    Name VARCHAR(100)
);
Query OK, 0 rows affected (0.94 sec)

mysql> INSERT INTO DemoTable VALUES(10,'Chris');
mysql> INSERT INTO DemoTable VALUES(1,'David');
mysql> INSERT INTO DemoTable VALUES(4,'Bob');
mysql> INSERT INTO DemoTable VALUES(6,'Sam');
mysql> INSERT INTO DemoTable VALUES(7,'Mike');
mysql> INSERT INTO DemoTable VALUES(5,'Carol');
mysql> INSERT INTO DemoTable VALUES(9,'John');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+------+-------+
| Id   | Name  |
+------+-------+
| 10   | Chris |
| 1    | David |
| 4    | Bob   |
| 6    | Sam   |
| 7    | Mike  |
| 5    | Carol |
| 9    | John  |
+------+-------+
7 rows in set (0.00 sec)

คำสั่งเรียง DESC ข้าม 3 แถว แล้วแสดง 4 แถว

mysql> SELECT Name FROM DemoTable ORDER BY Id DESC LIMIT 3, 4;

ผลลัพธ์:

+-------+
| Name  |
+-------+
| Sam   |
| Carol |
| Bob   |
| David |
+-------+
4 rows in set (0.00 sec)

คำอธิบาย

  • ORDER BY Id DESC : เรียง Id จากมากไปน้อย (10, 9, 7, 6, 5, 4, 1)
  • LIMIT 3, 4 : ข้าม 3 แถวแรก (offset=3) แล้วแสดง 4 แถวถัดไป (row_count=4)
  • แถวที่ 1-3 คือ Id 10, 9, 7 → ข้ามไป แสดงแถวที่ 4-7 คือ Id 6, 5, 4, 1 → ชื่อ Sam, Carol, Bob, David
  • รูปแบบ LIMIT offset, row_count หรือ LIMIT row_count OFFSET offset