Cách truy vấn dữ liệu theo điều kiện trong MySQL


- Thông thường, khi chúng ta sử dụng lệnh SELECT để truy xuất dữ liệu từ một cái bảng thì mặc định nó sẽ lấy hết tất cả các hàng nằm trên cái bảng. Tuy nhiên, có một số trường hợp chúng ta chỉ muốn lấy những hàng khi dữ liệu trên hàng đó thỏa một điều kiện cụ thể nào đó.

- Để giải quyết vấn đề được đặt ra ở phía trên thì khi sử dụng lệnh SELECT, chúng ta phải thêm mệnh đề WHERE nằm cuối câu lệnh với cú pháp như sau:

SELECT column1, column2, column3, . . . .
FROM table_name
WHERE condition;

- Trong đó, condition là biểu thức điều kiện mà các bạn muốn dựa vào nó để chọn lọc dữ liệu, một biểu thức điều kiện thường có ba thành phần cơ bản, đó chính là: tên cột toán tử so sánh giá trị

- Dưới đây là bảng mô tả sơ qua về những toán tử thường được sử dụng trong việc xác định một điều kiện.

=

- Bằng.

Xem ví dụ
>

- Lớn hơn.

Xem ví dụ
<

- Nhỏ hơn.

Xem ví dụ
>=

- Lớn hơn hoặc bằng.

Xem ví dụ
<=

- Nhỏ hơn hoặc bằng.

Xem ví dụ
!=

- Khác

- Lưu ý: Toán tử <> cũng có ý nghĩa tương tự như toán tử !=

Xem ví dụ
BETWEEN

- Nằm trong một phạm vi giá trị.

Xem ví dụ
LIKE

- Tìm kiếm dựa theo mẫu chuỗi.

Xem ví dụ
IN

- Nằm trong số những giá trị được chỉ định.

Xem ví dụ

THAM KHẢO MỘT SỐ VÍ DỤ

- Trong bài học này, tôi sẽ sử dụng cái bảng Products như bên dưới để làm một số ví dụ minh họa.

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
2 Nước tăng lực Sting dâu 9000
3 Mì hảo hảo tôm chua cay 4500
4 Dầu gội đầu Romano 59000
5 Xúc xích heo cao bồi 18000
6 Băng keo cá nhân 4500
Ví dụ 1:

- Liệt kê những sản phẩm có giá là 4500

SELECT * FROM Products WHERE Price = 4500;

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

ProductID ProductName Price
3 Mì hảo hảo tôm chua cay 4500
6 Băng keo cá nhân 4500
Ví dụ 2:

- Liệt kê những sản phẩm có giá lớn hơn 18000

SELECT * FROM Products WHERE Price > 18000;

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

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
4 Dầu gội đầu Romano 59000
Ví dụ 3:

- Liệt kê những sản phẩm có giá nhỏ hơn 18000

SELECT * FROM Products WHERE Price < 18000;

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

ProductID ProductName Price
2 Nước tăng lực Sting dâu 9000
3 Mì hảo hảo tôm chua cay 4500
6 Băng keo cá nhân 4500
Ví dụ 4:

- Liệt kê những sản phẩm có giá lớn hơn hoặc bằng 18000

SELECT * FROM Products WHERE Price >= 18000;

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

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
4 Dầu gội đầu Romano 59000
5 Xúc xích heo cao bồi 18000
Ví dụ 5:

- Liệt kê những sản phẩm có giá nhỏ hơn hoặc bằng 18000

SELECT * FROM Products WHERE Price <= 18000;

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

ProductID ProductName Price
2 Nước tăng lực Sting dâu 9000
3 Mì hảo hảo tôm chua cay 4500
5 Xúc xích heo cao bồi 18000
6 Băng keo cá nhân 4500
Ví dụ 6:

- Liệt kê những sản phẩm có giá khác 18000

SELECT * FROM Products WHERE Price != 18000;

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

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
2 Nước tăng lực Sting dâu 9000
3 Mì hảo hảo tôm chua cay 4500
4 Dầu gội đầu Romano 59000
6 Băng keo cá nhân 4500
Ví dụ 7:

- Liệt kê những sản phẩm có giá nằm trong phạm vi từ 10000 đến 30000

SELECT * FROM Products WHERE Price BETWEEN 10000 AND 30000;

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

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
5 Xúc xích heo cao bồi 18000
Ví dụ 8:

- Liệt kê những sản phẩm mà tên của nó có chứa từ Sting

SELECT * FROM Products WHERE ProductName LIKE "%Sting%";

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

ProductID ProductName Price
2 Nước tăng lực Sting dâu 9000
Ví dụ 9:

- Liệt kê những sản phẩm có giá là 4500 hoặc 18000 hoặc 22000

SELECT * FROM Products WHERE Price IN (4500, 18000, 22000);

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

ProductID ProductName Price
1 Kem đánh răng PS muối 22000
3 Mì hảo hảo tôm chua cay 4500
5 Xúc xích heo cao bồi 18000
6 Băng keo cá nhân 4500

- Mệnh đề WHERE ngoài việc được sử dụng bởi lệnh SELECT thì nó còn được dùng bởi lệnh UPDATE để cập nhật dữ liệu, hoặc lệnh DELETE để xóa dữ liệu, các bạn sẽ được tìm hiểu chi tiết về hai loại lệnh này trong những bài hướng dẫn tiếp theo.