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

จำลอง LIMIT ของ MySQL ใน Microsoft Access ด้วย TOP

ภาพรวม

Microsoft Access (Jet/ACE SQL) ไม่มีคำสั่ง LIMIT ใช้ TOP แทน วางหลัง SELECT

เปรียบเทียบ

DatabaseSyntaxตัวอย่าง
MySQLLIMIT nSELECT * FROM t LIMIT 5
AccessTOP nSELECT TOP 5 * FROM t
SQL ServerTOP nSELECT TOP 5 * FROM t
Oracle (12c+)FETCH FIRST n ROWSSELECT * FROM t FETCH FIRST 5 ROWS ONLY
PostgreSQLLIMIT nSELECT * FROM t LIMIT 5

ตัวอย่างใน Access

1. สร้างตาราง (ผ่าน GUI หรือ SQL)

จำลอง LIMIT ของ MySQL ใน Microsoft Access ด้วย TOP

2. เพิ่มข้อมูล

จำลอง LIMIT ของ MySQL ใน Microsoft Access ด้วย TOP

3. Query ด้วย TOP 5

SELECT TOP 5 * FROM TableName;

จำลอง LIMIT ของ MySQL ใน Microsoft Access ด้วย TOP

4. ผลลัพธ์

จำลอง LIMIT ของ MySQL ใน Microsoft Access ด้วย TOP

ตัวเลือกเพิ่มเติมของ TOP

-- TOP n PERCENT (เปอร์เซ็นต์)
SELECT TOP 10 PERCENT * FROM TableName;

-- TOP n WITH TIES (รวมค่าที่เท่ากันกับแถวสุดท้าย)
SELECT TOP 5 WITH TIES * FROM TableName ORDER BY Score DESC;

MySQL: LIMIT + OFFSET (Pagination)

-- หน้าที่ 1 (แถว 1-10)
SELECT * FROM TableName LIMIT 10 OFFSET 0;
-- หรือ
SELECT * FROM TableName LIMIT 0, 10;

-- หน้าที่ 2 (แถว 11-20)
SELECT * FROM TableName LIMIT 10 OFFSET 10;
-- หรือ
SELECT * FROM TableName LIMIT 10, 10;

Access: การทำ Pagination (ซับซ้อนกว่า)

Access ไม่มี OFFSET ต้องใช้ Subquery:

-- หน้าที่ 2 (ข้าม 10 แถว แล้วเอา 10 แถว)
SELECT TOP 10 * FROM TableName
WHERE Id NOT IN (
    SELECT TOP 10 Id FROM TableName ORDER BY Id
)
ORDER BY Id;

สรุป

MySQL: LIMIT n [OFFSET m]
Access / SQL Server: TOP n (วางหลัง SELECT) - ไม่มี OFFSET ต้องใช้ Subquery