Toán tử BETWEEN trong MySQL

Toán tử BETWEEN trong MySQL

Trong hướng dẫn này, bạn sẽ họ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.

Toán tử BETWEEN trong MySQL

Toán tử BETWEEN là một toán tử logic chỉ định 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 nếu:

value >= low AND value <= high

Nếu không, nó trả về 0.

Nếu value, low hoặc highNULL, toán tử BETWEEN 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 coi 1 là true và 0 là false.

Toán tử NOT BETWEEN trong MySQL

Để phủ định toán tử BETWEEN, bạn sử dụng toán tử NOT:

value NOT BETWEEN low AND high

Toán tử NOT BETWEEN trả về 1 nếu:

value < low OR value > high

Nếu không, nó 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;

Trong thực tế, bạn sẽ sử dụng toán tử BETWEEN trong mệnh đề WHERE của câu lệnh SELECT, UPDATEDELETE.

Ví dụ về toán tử BETWEEN trong MySQL

Hãy thực hành với một số ví dụ về việc sử dụng toán tử BETWEEN.

Sử dụng toán tử BETWEEN trong MySQL với các số

Xem bảng products sau trong cơ sở dữ liệu mẫu:

Ví dụ về toán tử BETWEEN trong MySQL

Ví dụ sau sử dụng toán tử 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;

Đầu ra:

Ví dụ về toán tử BETWEEN trong MySQL

Truy vấn dưới đâ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 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;

Đầu ra:

Ví dụ về toán tử BETWEEN trong MySQL

Bạn có thể viết lại truy vấn ở trên bằng cách sử dụng toán tử 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;

Sử dụng toán tử BETWEEN trong MySQL với ngày tháng

Xem bảng đơn hàng sau:

Ví dụ về toán tử BETWEEN trong MySQL

Để kiểm tra xem một giá trị có nằm giữa một phạm vi ngày tháng hay không, bạn nên chuyển giá trị đó sang kiểu 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 requireddate bắt đầu từ ngày 01/01/2003 đến 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);

Đầu ra:

Ví dụ về toán tử BETWEEN trong MySQL

Trong ví dụ này, chúng ta sử dụng hàm CAST() để ép kiểu chuỗi ký tự '2003-01-01' thành một giá trị kiểu DATE:

CAST('2003-01-01' AS DATE)

Tóm lược

  • Sử dụng toán tử BETWEEN trong MySQL để kiểm tra xem một giá trị có nằm trong một phạm vi giá trị hay không.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *