Mệnh đề WHERE cho phép bạn xác định một tập kết quả các bản ghi chọn lọc dựa trên một biểu thức lọc đặc biệt hoặc nột biểu thức điều kiện.
Cú pháp: Cú pháp MySQL chung của lệnh SELECT với mệnh đề WHERE để lấy dữ liệu là:
SELECT truong1, truong2,...truongN FROM ten_bang[WHERE dieuKien1 [AND [OR]] dieuKien2.....
- Bạn có thể xác định bất kỳ điều kiện nào bởi sử dụng mệnh đề WHERE.
- Bạn có thể xác định nhiều hơn một điều kiện bởi sử dụng các toán tử AND và OR.
- Một mệnh đề WHERE có thể được sử dụng cùng với lệnh DELETE hoặc UPDATE trong MySQL để xác định một điều kiện.
Mệnh đề WHERE làm việc giống như một điều kiện if trong bất kỳ ngôn ngữ lập trình nào. Mệnh đề này được sử dụng để so sánh giá trị đã cho với giá trị trường có sẵn trong bảng MySQL. Nếu giá trị đã cho bên ngoài là bằng với giá trị trường có sẵn trong bảng MySQL, thì nó sẽ trả về hàng đó.
Để lắm rõ được các toán tử được sử dụng trong MySQL bạn vui lòng xem lại bài Một số toán tử thường dùng trong MySQL
Chúng ta sẽ tiếp tục với bảng employees trong CSDL mẫu.
Bây giờ hãy áp dụng mệnh đề WHERE để lấy về những bản ghi nào có jobTitle là Sales Rep.
1 2 3 4 5 6 | SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep' ; |
Try In Out
Mặc dù mệnh đề WHERE xuất hiện ở cuối của câu lệnh SELECT. MySQL sẽ dựa vào biểu thức trong mệnh đề WHERE để tìm kiếm các bản ghi phù hợp. Trong trường hợp này thì nó sẽ lựa chọn những bản ghi nào có jobTitle là Sales Rep.
Tiếp đó: MySQL sau đó chọn các cột trong mệnh đề SELECT. Vùng được đánh dấu có chứa các cột và các hàng trong tập kết quả cuối cùng được trả về.
Bạn có thể xây dựng một điều kiện phức tạp hơn bằng việc sử dụng các biểu thức điều kiện với các toán tử logic như AND, OR
Ví dụ: Tìm tất cả các bản ghi với điều kiện là jobTitle là Sales Rep và OfficeCode là 1
1 2 3 4 5 6 | SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep' AND officeCode = 1; |
Try In Out
Hoặc
1 2 3 4 5 6 | SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep' OR officeCode = 1; |
Try In Out
Một số mệnh đề khác có thể sử dụng với mệnh đề WHERE.
Ngoài ra còn có một số mệnh đề khác có thể sử dụng trong mệnh đề WHERE để tạo nên các điều kiện phức tạp như:
- BETWEEN chọn giá trị trong một khoảng giá trị.
- LIKE phù hợp với giá trị dựa trên mô hình kết hợp.
- IN định giá trị phù hợp với bất kỳ giá trị trong một danh sách.
- NULL kiểm tra NULL nếu giá trị là NULL.
Tồng kết.
Trong bài viết này mình đã hướng dẫn các bạn sử dụng mệnh đề WHERE trong MySQL một cách cơ bản nhất. Độ phức tạp của các biểu thức điều kiện còn phụ thuộc vào yêu cầu của bải toán.