Chủ đề nổi bật
03/08/2018, 10:11

Bài 19: Select trong khoảng với BETWEEN trong MySQL

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ì ...

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é.

1. Select trong khoảng với BETWEEN trong MySQL

Giả sử ta có bảng dữ liệu như sau:

select-trong-khoang-mysql-1.png

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:

SELECT * FROM SINHVIEN
WHERE NamSinh >= 1970 AND NamSinh <= 1990

Thay vì sử dụng toán tử OR thì ta sử dụng toán tử BETWEEN với cú pháp:

field_name BETWEEN begin AND end

Trong đó:

  • field_name: tên field cần kiểm tra
  • begin: giá trị bắt đầu
  • end: giá trị kết thúc

Quay lại ví dụ trên ta sẽ viết lại câu SQL như sau:

SELECT * FROM SINHVIEN
WHERE NamSinh BETWEEN 1970 AND 1990

Cả hai cách đều có kết quả giống nhau như hình dưới đây:

select-trong-khoang-mysql-2.png

2. Select ngoài khoảng với BETWEEN trong MySQL

Ngoài cú pháp sử dụng select trong khoảng thì BETWEEN còn có một cách sử dụng là select ngoài khoảng

Cú pháp như sau:

field_name NOT BETWEEN begin AND end

Sự khác nhau giữa trong khoang và ngoài khoảng là thêm chữ NOT đằng trước chữ BETWEEN.

Quay lại bài trên bây giờ cần lấy danh sách sinh viên có năm sinh không nằm trong khoảng 1970 và 1990 thì ta sẽ làm hai cách như sau:

Cách 1: Sử dụng toán tử OR

SELECT * FROM SINHVIEN
WHERE NamSinh < 1970 OR 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:

select-trong-khoang-mysql-3.png

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àm CASE chuyển dữ liệu sang dạng DATE để 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'<br>

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.

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan
Mới nhất

MySQL căn bản

Trong series học MySQL căn bản này bạn sẽ được hướng dẫn tự học MySQL tại nhà một cách hiệu quả, series này dành cho những bạn đang muốn tự học MySQL. Khi học lập trình web với PHP thì chắc chắn bạn sẽ được gợi ý học thêm MySQL nữa bởi bộ đôi PHP + MySQL là một cặp hoàn hảo xưa nay, nó ...

MySQL Functions

BÀI KẾ SAU BÀI KẾ TIẾP

MySQL View

BÀI KẾ SAU BÀI KẾ TIẾP

MySQL Tutorials

BÀI KẾ SAU BÀI KẾ TIẾP

Bài 20: INNER JOIN trong MySQL

Trong bài này chúng ta tìm hiểu cách sử dụng INNER JOIN để kết hai bảng với nhau. Ở bài tích đề cát chúng ta đã tìm hiểu cách truy vấn dữ liệu ...

Bài 18: Gộp kết quả với toán tử UNION trong MySQL

Nếu bạn cần viết hai câu truy vấn SELECT khác nhau nhưng bạn muốn nó trả về một danh sách kết quả duy nhất thì bạn phải sử dụng toán tử UNION. ...

Tạo Unique trong MySQL

Trong bài tạo khóa chính Primary Key mình đã nói rằng trong một bảng sẽ tồn tại một khóa chính ( có thể có nhiều fields ) và giá trị của nó sẽ là ...

Bài 13: WHERE IN - WHERE LIKE trong MySQL

Ở bài tìm hiểu lệnh SELECT mình đã liệt kê danh sách các toán tử và trong đó có hai toán tử là IN và LIKE thì trong bài này chúng ta sẽ tìm hiểu ...

Bài 16: Phép tích đề cát trong MySQL

Tích đề cát trong MySQL có nghĩa là truy vấn trên nhiều table trong cùng một câu SELECT và kêt quả trả về có thể là một trong số các fields của ...

Lệnh tạo database (Create Database) trong MySQL

Với mỗi ứng dụng chúng ta sẽ tạo một Database để lưu trữ dữ liệu của ứng dụng đó. Mỗi database sẽ có các table và trong mỗi table thì có nhiều ...