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

วิธีค้นหาแถวที่ ID หาร 4 ลงตัวใน MySQL

ใช้ Modulo Operator (%) ตรวจสอบหารลงตัว

ออปอเรเตอร์ % (Modulo) คืนค่าเศษจากการหาร ใช้ ID % 4 = 0 ตรวจสอบว่า ID หาร 4 ลงตัว

ตัวอย่างสร้างตารางและข้อมูล

CREATE TABLE DemoTable (
    ID INT,
    StudentName VARCHAR(10),
    CountryName VARCHAR(20)
);

INSERT INTO DemoTable VALUES
(0, 'David', 'AUS'), (3, 'Chris', 'UK'), (8, 'Carol', 'US'),
(9, 'Sam', 'US'), (12, 'Robert', 'UK'), (10, 'Mike', 'AUS');

ข้อมูลในตาราง

+------+-------------+-------------+
| ID   | StudentName | CountryName |
+------+-------------+-------------+
| 0    | David       | AUS         |
| 3    | Chris       | UK          |
| 8    | Carol       | US          |
| 9    | Sam         | US          |
| 12   | Robert      | UK          |
| 10   | Mike        | AUS         |
+------+-------------+-------------+

คำสั่งค้นหา ID หาร 4 ลงตัว

SELECT * FROM DemoTable WHERE (ID % 4) = 0;

ผลลัพธ์ (0, 8, 12)

+------+-------------+-------------+
| ID   | StudentName | CountryName |
+------+-------------+-------------+
| 0    | David       | AUS         |
| 8    | Carol       | US          |
| 12   | Robert      | UK          |
+------+-------------+-------------+

คำอธิบาย:

  • ID % 4 คำนวณเศษจากการหาร ID ด้วย 4
  • = 0 หมายถึงหารลงตัว (0, 4, 8, 12, 16, ...)
  • ID = 0 ก็หาร 4 ลงตัว (0 ÷ 4 = 0 เศษ 0)

ประยุกต์ใช้:

  • แบ่ง Batch/Partition: WHERE id % 10 = 0 (ทุก 10 แถว)
  • Round Robin: WHERE id % N = worker_id แบ่งงานให้ N Worker
  • Sampling: WHERE RAND() < 0.01 หรือ WHERE id % 100 = 42 (1% Sample)

⚐ ประสิทธิภาพ: % บนคอลัมน์ Index ไม่สามารถใช้ Index ได้ (Non-sargable) หากตารางใหญ่ ควรเพิ่มคอลัมน์ Computed/Generated Column เก็บ id % 4 ไว้แล้ว Index คอลัมน์นั้น