Bài 11: Lọc dữ liệu sử dụng MySQL WHERE

Học Mysql 17/01/2017 08:05 936
Khi bạn sử dụng câu lệnh SELECT để truy vấn lấy dữ liệu từ một hoặc nhiều bảng không sử dụng mệnh đề WHERE. Mặc định bạn sẽ lấy toàn bộ các bản ghi dữ liệu trong bảng bao gồm cả các bản ghi không thực sự cần thiết. Trong một trường hợp nhất định bạn chỉ muốn thực hiện lấy kết quả kinh doanh của tháng này, năm này, danh sách đơn hàng trong tháng, danh sách nhaanh viên bán hàng xuất sắc trong năm...

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ó jobTitleSales Rep.

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ó jobTitleSales 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à jobTitleSales RepOfficeCode là 1

SELECT 
    lastname, firstname, jobtitle
FROM
    employees
WHERE
    jobtitle = 'Sales Rep' AND officeCode = 1;

Try In Out

Hoặc

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.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.