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

MySQL BETWEEN ไม่รวมค่าเริ่มต้นและค่าสิ้นสุด

ใช้ BETWEEN ... AND ... ร่วม NOT IN (start, end) เพื่อตัดจุดเริ่มต้นและจุดสิ้นสุดออก

ไวยากรณ์

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

ตัวอย่างการใช้งาน

สร้างตาราง BetweenWithoutEndPoints:

mysql> CREATE TABLE BetweenWithoutEndPoints (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Name VARCHAR(20),
    -> Age INT,
    -> PRIMARY KEY(Id)
    -> );

เพิ่มข้อมูล 9 แถว (Id 1-9):

mysql> INSERT INTO BetweenWithoutEndPoints(Name, Age) VALUES
    -> ('Mike',23),('Larry',25),('David',28),('Sam',26),('Carol',21),('John',29),('James',20),('Robert',26),('Michael',30);

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

+----+---------+------+
| Id | Name    | Age  |
+----+---------+------+
| 1  | Mike    | 23   |
| 2  | Larry   | 25   |
| 3  | David   | 28   |
| 4  | Sam     | 26   |
| 5  | Carol   | 21   |
| 6  | John    | 29   |
| 7  | James   | 20   |
| 8  | Robert  | 26   |
| 9  | Michael | 30   |
+----+---------+------+

คำสั่ง BETWEEN 3 ถึง 8 แต่ตัด 3 และ 8 ออก

mysql> SELECT * FROM BetweenWithoutEndPoints 
    -> WHERE Id BETWEEN 3 AND 8 AND Id NOT IN (3, 8);

ผลลัพธ์ (เหลือ Id 4,5,6,7)

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 4  | Sam   | 26   |
| 5  | Carol | 21   |
| 6  | John  | 29   |
| 7  | James | 20   |
+----+-------+------+