×

Lọc giá trị trong khoảng với lệnh BETWEEN trong MySQL

Trong MySQL, việc lọc giá trị trong khoảng là một công việc phổ biến, đặc biệt khi ta cần truy vấn dữ liệu nằm giữa hai giá trị xác định. Để thực hiện điều này, lệnh BETWEEN được sử dụng rất hiệu quả. Đây là một lệnh trực quan và dễ hiểu, giúp truy xuất dữ liệu theo định dạng mong muốn một cách nhanh chóng.

Cú pháp của BETWEEN

Cú pháp cơ bản của BETWEEN trong MySQL như sau:

SELECT column1, column2, ...
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Ở đây, column_name là tên của cột mà bạn muốn lọc, và value1, value2 là giá trị bắt đầu và kết thúc của khoảng mà bạn quan tâm. Dữ liệu lọc được sẽ bao gồm cả hai giá trị value1value2.

Ví dụ Chi Tiết

1. Lọc Dữ Liệu Số:

Giả sử ta có bảng products với cột price lưu trữ giá sản phẩm. Nếu muốn tìm tất cả các sản phẩm có giá từ 100 đến 500, ta có thể sử dụng lệnh như sau:

SELECT product_name, price
FROM products
WHERE price BETWEEN 100 AND 500;

Lệnh này sẽ trả về danh sách các sản phẩm có giá từ 100 đến 500, bao gồm cả 100 và 500 nếu có.

2. Lọc Dữ Liệu Ngày Tháng:

Giả sử bạn có bảng orders với cột order_date lưu trữ ngày đặt hàng. Nếu muốn tìm tất cả các đơn hàng được tạo ra trong khoảng từ ngày 1 tháng 1 năm 2023 đến ngày 31 tháng 1 năm 2023, lệnh sẽ như sau:

SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-01-31';

Câu truy vấn này sẽ trả về danh sách các đơn hàng được đặt trong tháng 1 năm 2023.

Một Số Điểm Cần Lưu Ý

  • Tính Bao Gồm: Lệnh BETWEEN bao gồm cả giá trị bắt đầu và kết thúc. Điều này nghĩa là nếu ta viết WHERE price BETWEEN 100 AND 500, thì các sản phẩm có giá chính xác là 100 và 500 cũng sẽ được bao gồm.
  • Kiểu Dữ Liệu: Đảm bảo rằng kiểu dữ liệu của cột và giá trị bạn so sánh phù hợp với nhau. Ví dụ, khi làm việc với ngày tháng, các giá trị cần ở định dạng yyyy-mm-dd.
  • Tương thích với NULL: Lệnh BETWEEN không trả về các hàng có giá trị NULL trong cột được lọc, vì NULL không thể so sánh được với các giá trị cụ thể.

Sử Dụng BETWEEN Với NOT

Nếu muốn lọc ra các giá trị nằm ngoài khoảng xác định, bạn có thể sử dụng NOT BETWEEN:

SELECT product_name, price
FROM products
WHERE price NOT BETWEEN 100 AND 500;

Lệnh này sẽ trả về danh sách các sản phẩm có giá nhỏ hơn 100 hoặc lớn hơn 500.

Kết Luận

Sử dụng lệnh BETWEEN trong MySQL là một cách hiệu quả để lọc dữ liệu trong các khoảng giá trị xác định. Từ việc lọc giá, lọc ngày tháng đến các giá trị số khác, BETWEEN giúp bạn giới hạn kết quả truy vấn một cách chi tiết và chính xác. Nắm vững cú pháp và cách sử dụng sẽ mang lại nhiều tiện ích trong việc truy xuất và quản lý dữ liệu.

Comments