Để BETWEEN bao gồm đầu nhưng loại trừ cuối: BETWEEN a AND b AND cot <> b hoặc cot >= a AND cot < b.
Cú pháp
SELECT *
FROM ten_bang
WHERE cot BETWEEN gia_tri_dau AND gia_tri_cuoi
AND cot <> gia_tri_cuoi;
Hoặc đơn giản hơn (khuyến nghị):
SELECT *
FROM ten_bang
WHERE cot >= gia_tri_dau AND cot < gia_tri_cuoi;
Ví dụ minh họa
Cùng bảng Id 1..9. Lấy Id từ 3 đến 8, **bao gồm 3, loại trừ 8**:
Cách 1: BETWEEN + NOT IN
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 |
+----+-------+------+
Cách 2: Toán tử so sánh (khuyên dùng)
SELECT * FROM BetweenWithoutEndPoints
WHERE Id >= 3 AND Id < 8;
Kết quả giống hệt, hiệu năng tốt hơn (dùng được index range scan).
Tóm tắt:
- Inclusive cả hai:
BETWEEN a AND b≡cot >= a AND cot <= b - Exclusive cả hai:
cot > a AND cot < b - Inclusive đầu, exclusive cuối:
cot >= a AND cot < b