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

MySQL BETWEEN ไม่รวมค่าสิ้นสุด (Endpoint)

ใช้ BETWEEN ... AND ... ร่วม NOT IN (endVal) เพื่อตัดเฉพาะค่าสิ้นสุดออก

ไวยากรณ์

SELECT * FROM yourTable 
WHERE yourColumn BETWEEN startVal AND endVal 
AND yourColumn NOT IN (endVal);

ตัวอย่าง (ใช้ตารางเดียวกับบทความก่อนหน้า)

ข้อมูลตาราง BetweenWithoutEndPoints เดิม (Id 1-9)

กรณี 1: ตัดทั้งจุดเริ่มและจุดสิ้นสุด (3 และ 8)

mysql> SELECT * FROM BetweenWithoutEndPoints WHERE Id BETWEEN 3 AND 8 AND Id NOT IN (3, 8);
+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 4  | Sam   | 26   |
| 5  | Carol | 21   |
| 6  | John  | 29   |
| 7  | James | 20   |
+----+-------+------+

กรณี 2: ตัดเฉพาะจุดสิ้นสุด (8)

mysql> SELECT * FROM BetweenWithoutEndPoints WHERE Id BETWEEN 3 AND 8 AND Id NOT IN (8);
+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 3  | David | 28   |
| 4  | Sam   | 26   |
| 5  | Carol | 21   |
| 6  | John  | 29   |
| 7  | James | 20   |
+----+-------+------+

สรุป: ใช้ NOT IN ระบุค่าที่ต้องการตัดออกจากช่วง BETWEEN