Cách sử dụng toán tử BETWEEN trong MySQL
- Trong hệ quản trị cơ sở dữ liệu MySQL, toán tử BETWEEN thường được sử dụng bởi mệnh đề WHERE để thực hiện việc chọn lọc dữ liệu theo điều kiện. Toán tử BETWEEN sẽ xác định một phạm vi giá trị [giá trị có thể là số, văn bản, ngày tháng], nếu giá trị dữ liệu của cột cần tìm nằm trong phạm vi này thì tức là thỏa điều kiện.
- Để sử dụng toán tử BETWEEN thì chúng ta dùng cú pháp như sau:
SELECT column1, column2, column3, . . . .
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
MỘT SỐ VÍ DỤ
- Trong bài học này, tôi sẽ sử dụng cái bảng Student như bên dưới để làm một số ví dụ minh họa:
ID | Name | Gender | Age | DateOfBirth | City |
1 | Nguyễn Thành Nhân | Nam | 22 | 1993-07-15 | An Giang |
2 | Phạm Thu Hiền | Nữ | 18 | 1997-02-21 | Cần Thơ |
3 | Dương Văn Gánh | Nam | 23 | 1992-10-28 | Bạc Liêu |
4 | Lê Thị Tuyết Nhung | Nữ | 19 | 1996-04-19 | Sóc Trăng |
5 | Trần Thị Huỳnh Như | Nữ | 20 | 1995-09-14 | Cần Thơ |
6 | Doãn Thiên Sầu | Nam | 20 | 1995-12-31 | An Giang |
7 | Tì Sa Môn Thiên | Nam | 21 | 1994-06-17 | Vĩnh Long |
- Liệt kê những sinh viên có độ tuổi từ 19 đến 22.
SELECT *
FROM Student
WHERE Age BETWEEN 19 AND 22;
- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:
ID | Name | Gender | Age | DateOfBirth | City |
1 | Nguyễn Thành Nhân | Nam | 22 | 1993-07-15 | An Giang |
4 | Lê Thị Tuyết Nhung | Nữ | 19 | 1996-04-19 | Sóc Trăng |
5 | Trần Thị Huỳnh Như | Nữ | 20 | 1995-09-14 | Cần Thơ |
6 | Doãn Thiên Sầu | Nam | 20 | 1995-12-31 | An Giang |
7 | Tì Sa Môn Thiên | Nam | 21 | 1994-06-17 | Vĩnh Long |
- Liệt kê những sinh viên được sinh ra trong khoảng thời gian từ 01/01/1993 đến 20/09/1995
SELECT *
FROM Student
WHERE DateOfBirth BETWEEN "1993-01-01" AND "1995-09-20";
- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:
ID | Name | Gender | Age | DateOfBirth | City |
1 | Nguyễn Thành Nhân | Nam | 22 | 1993-07-15 | An Giang |
5 | Trần Thị Huỳnh Như | Nữ | 20 | 1995-09-14 | Cần Thơ |
7 | Tì Sa Môn Thiên | Nam | 21 | 1994-06-17 | Vĩnh Long |
Trong bài này chúng ta tìm hiểu cách sử dụng toán tử BETWEEN trong MySQL để xác định dữ liệu trong một khoảng nào đó. Để select trong khoảng thì ngoài BETWEEN ra ta có thể sử dụng toán tử AND để thay thế, chi tiết thế nào thì chúng ta cùng tìm hiểu nhé.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
1. Select trong khoảng với BETWEEN trong MySQL
Giả sử ta có bảng dữ liệu như sau:
Bây giờ cần lấy những sinh viên có năm sinh trong khoảng từ 1970 đến 1990 thì ta sử lệnh
SELECT và ở WHERE
sử dụng toán tử AND
:
Bài viết này được đăng tại [free tuts .net]
SELECT * FROM SINHVIEN WHERE NamSinh >= 1970 AND NamSinh 1990
Cách 2: Sử dụng NOT BETWEEN
SELECT * FROM SINHVIEN WHERE NamSinh NOT BETWEEN 1970 AND 1990
Cả hai ví dụ đều có kết quả như sau:
3. Sử dụng BETWEEN với các kiểu dữ liệu khác
BETWEEN
thường sử dụng với dữ liệu kiểu INT
, tuy nhiên bạn vẫn sử dụng được với các kiểu dữ liệu khác như:
CHARACTER
: Tuân theo thứ tự trong bảng mãASCII
DATE
: Bạn nên sử dụng thêm hàmCASE
chuyển dữ liệu sang dạngDATE
để có kết quả chính xác nhất.
Ví dụ 1: Lấy danh sách sinh viên có tên gồm các ký tự trong khoảng 'A' đến 'B'
SELECT * FROM SINHVIEN WHERE TenSV BETWEEN 'A' AND 'B'
Ví dụ 2: Giả sử bảng sinh viên thêm cột ngày nhập học. Bây giờ viết câu truy vấn lấy danh sách sinh viên nhập học từ ngày 01/01/2003 đến ngày 01/01/2014 thì ta làm như sau:
SELECT * FROM SINHVIEN WHERE NgayNhapHoc BETWEEN CAST['2003-01-01' AS DATE] AND CAST['2014-01-01' AS DATE]
4. Lời kết
Vậy, để select trong khoảng nào đó thì ta thường sử dụng BETWEEN
, tuy nhiên cũng phụ thuộc vào thói quen của mỗi người mà
chọn giữa AND
với BETWEEN
, OR
với NOT BETWEEN
.