Toán tử BETWEEN trong MySQL
Trần Thị Vân
- 1168
- 15/08/2025
Chức năng của Toán tử BETWEEN trong MySQL
Toán tử BETWEEN trong MySQL được dùng để lấy những hàng có giá trị của cột nằm trong một khoảng giá trị nhất định.
Code Toán tử BETWEEN trong MySQL
select ten,gia from tb_sanpham WHERE gia BETWEEN 10000000 AND 50000000;
<?php
$dbhost = 'localhost';
$dbuser = 'webmoi_userdata'; // Tên username
$dbpass = 'xgZwEfQWE'; // Mật khẩu
// Kết nối đến tên username
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Không kết nối được: ' . mysql_error());
}
// Chọn tên database
mysql_select_db('webmoi_tendata');
// Xét kiểu tiếng việt
mysql_query('SET NAMES "utf8"');
// WHERE gia BETWEEN 10000000 AND 50000000
echo "<b>WHERE gia BETWEEN 10000000 AND 50000000</b><br>";
$sql ="select ten,gia from tb_sanpham WHERE gia BETWEEN 10000000 AND 50000000";
$ketquamot = mysql_query($sql,$conn);
if(!$ketquamot){
die('Không thể lấy dữ liệu: ' . mysql_error());
}
// Dùng vòng lặp để lấy ra từng hàng trong bảng
while($row = mysql_fetch_array($ketquamot, MYSQL_ASSOC)){
echo "ten: {$row['ten']} <br> ".
"gia: ".number_format($row['gia'],0,"",".")." <br> ".
"--------------------------------<br>";
}
// Đóng kết nối database
mysql_close($conn);
?>
Kết quả:
WHERE gia BETWEEN 10000000 AND 50000000
ten: Dàn karaoke gia đình KTreasure TD12 mới nhất
gia: 44.550.000
--------------------------------
ten: Dàn âm thanh nghe nhạc AV01
gia: 25.000.000
--------------------------------
ten: Dàn âm thanh nghe nhạc AV02
gia: 30.000.000
--------------------------------
Cách sử dụng BETWEEN trong MySQL qua các trường hợp thực tế
Toán tử BETWEEN giúp xác định dữ liệu nằm trong một khoảng giá trị cụ thể. Trong MySQL, BETWEEN thường được dùng khi cần lọc theo khoảng số, khoảng thời gian hoặc kết hợp với nhiều điều kiện để tạo truy vấn chính xác hơn.
Sử dụng BETWEEN với dữ liệu số
Với dữ liệu số, BETWEEN phù hợp khi cần lấy các bản ghi nằm trong một khoảng xác định. Hai giá trị ở đầu và cuối đều được tính vào kết quả.
SELECT * FROM san_pham
WHERE gia BETWEEN 100000 AND 500000;
Truy vấn trên lấy những sản phẩm có giá từ 100000 đến 500000, bao gồm cả sản phẩm có giá đúng bằng 100000 hoặc 500000.
Cách này đặc biệt hữu ích khi lọc giá sản phẩm, độ tuổi, số lượng, điểm số hoặc các trường dữ liệu dạng số khác.
Sử dụng BETWEEN với ngày tháng
BETWEEN cũng có thể dùng để lọc dữ liệu theo khoảng ngày. Đây là trường hợp thường gặp khi cần tìm đơn hàng, bài viết hoặc giao dịch phát sinh trong một khoảng thời gian.
SELECT * FROM don_hang
WHERE ngay_dat BETWEEN '2026-08-01' AND '2026-08-15';
Kết quả sẽ gồm các đơn hàng có ngày đặt nằm từ 01/08/2026 đến 15/08/2026, với cả hai mốc ngày đều được tính.
Khi cột dữ liệu chứa cả ngày và giờ, cần chú ý đến phần thời gian ở giá trị kết thúc. Trong trường hợp này, có thể dùng điều kiện lớn hơn hoặc bằng ngày bắt đầu và nhỏ hơn ngày kế tiếp để tránh bỏ sót dữ liệu trong ngày cuối.
SELECT * FROM don_hang
WHERE ngay_dat >= '2026-08-01'
AND ngay_dat < '2026-08-16';
Kết hợp BETWEEN với các điều kiện khác
BETWEEN có thể kết hợp với AND, OR, điều kiện kiểm tra trạng thái hoặc các biểu thức khác để thu hẹp kết quả truy vấn.
SELECT * FROM san_pham
WHERE gia BETWEEN 200000 AND 800000
AND trang_thai = 1;
Ví dụ trên chỉ lấy sản phẩm có giá trong khoảng từ 200000 đến 800000 và đồng thời đang ở trạng thái hoạt động.
Khi có nhiều điều kiện, nên đặt dấu ngoặc cho các nhóm điều kiện sử dụng OR để tránh MySQL hiểu sai thứ tự kết hợp. Điều này giúp câu lệnh dễ đọc hơn và hạn chế kết quả ngoài mong muốn.
SELECT * FROM san_pham
WHERE (gia BETWEEN 200000 AND 500000)
OR (gia BETWEEN 1000000 AND 1500000);
Cách viết này phù hợp khi cần lấy dữ liệu thuộc nhiều khoảng giá khác nhau trong cùng một truy vấn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Toán tử BETWEEN trong MySQL.
Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.
- 0 Bình luận
Email, Điện thoại 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 *