Trong bài viết này, bạn sẽ được cách sử dụng toán tử BETWEEN trong MySQL để xác định xem một giá trị có nằm trong một dải giá trị hay không.
Giới thiệu về Toán tử BETWEEN MySQL
Toán tử BETWEEN là một toán tử logic xác định xem một giá trị có nằm trong một phạm vi hay không. Đây là cú pháp của toán tử BETWEEN:
value BETWEEN low AND high;
Toán tử BETWEEN trả về 1 giá trị có nằm trong khoảng giá trị, và ngược lại sẽ trả về 0:
value >= low AND value <= high
Nếu các giá trị value, low, hoặc high bằng NULL, thì BETWEEN sẽ trả về NULL.
Ví dụ: câu lệnh sau trả về 1 vì 15 nằm trong khoảng từ 10 đến 20:
SELECT 15 BETWEEN 10 AND 20;
Ví dụ sau trả về 0 vì 15 không nằm trong khoảng từ 20 đến 30:
SELECT 15 BETWEEN 20 AND 30;
Lưu ý rằng MySQL quy định 1 là true và 0 là false.
NOT BETWEEN
Toán tử NOT BETWEEN là trái ngược với BETWEEN.
value NOT BETWEEN low AND high
Toán tử NOT BETWEEN trả về 1 nếu:
value < low OR value > high
và ngược lại sẽ trả về 0.
Ví dụ: câu lệnh sau trả về 0 vì 15 không nằm trong khoảng từ 10 đến 20 là không đúng:
SELECT 15 NOT BETWEEN 10 AND 20;
Trên thực tế, bạn sẽ sử dụng toán tử BETWEEN trong mệnh đề WHERE của câu lệnh SELECT, UPDATE, và DELETE.
Ví dụ về toán tử MySQL BETWEEN
1) Sử dụng MySQL BETWEEN với các ví dụ về số
Xem bảng products sau trong cơ sở dữ liệu mẫu:
Ví dụ sau sử dụng BETWEEN để tìm các sản phẩm có giá mua từ 90 đến 100:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice BETWEEN 90 AND 100;
Kết quả:
Truy vấn này sử dụng toán tử lớn hơn hoặc bằng (>=) và nhỏ hơn hoặc bằng (<=) thay vì toán tử BETWEEN để nhận được cùng một kết quả:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice >= 90 AND buyPrice <= 100;
Để tìm các sản phẩm có giá mua không nằm trong khoảng từ $ 20 đến $ 100, bạn sử dụng toán tử NOT BETWEEN như sau:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice NOT BETWEEN 20 AND 100;
Kết quả:
Bạn có thể viết lại truy vấn ở trên bằng cách sử dụng nhỏ hơn (<), lớn hơn (>) và toán tử logic (AND) như sau:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice < 20 OR buyPrice > 100;
2) Sử dụng toán tử MySQL BETWEEN với ví dụ về ngày tháng
Xem bảng đơn hàng sau:
Để kiểm tra xem một giá trị có nằm trong phạm vi ngày hay không, bạn nên chuyển giá trị sang loại DATE một cách rõ ràng.
Ví dụ: câu lệnh sau trả về các đơn đặt hàng với các ngày bắt buộc từ ngày 01/01/2003 đến ngày 31/01/2003:
SELECT
orderNumber,
requiredDate,
status
FROM
orders
WHERE
requireddate BETWEEN
CAST('2003-01-01' AS DATE) AND
CAST('2003-01-31' AS DATE);
Kết quả:
Tổng kết
- Sử dụng toán tử MySQL BETWEEN để kiểm tra xem một giá trị có nằm trong một phạm vi giá trị hay không.
Bài viết liên quan:
- Seri MySQL cơ bản
- Câu lệnh SELECT FROM trong MySQL
- MySQL SELECT
- MySQL AND, Cách Sử Dụng Toán Tử AND Trong MySQL / Mariadb
Các bạn có thể xem thêm ở đây:https://www.mysqltutorial.org/mysql-between
