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ị value1
và value2
.
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ếtWHERE 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