Câu lệnh MySQL WHERE được sử dụng để xác định một trường hợp khi dữ liệu được thu thập từ một danh sách riêng biệt hoặc kết hợp với một số bảng. Nếu trường hợp cụ thể được đáp ứng, thì chỉ giá trị duy nhất của bảng được trả về. Để trích xuất thông tin và chỉ truy xuất các bản ghi chính xác, bạn có thể sử dụng câu lệnh WHERE.
Các bài viết liên quan:
Giới thiệu về WHERE trong SQL
WHERE là một mệnh đề trong ngôn ngữ truy vấn cấu trúc (SQL) được sử dụng để lọc dữ liệu trong câu truy vấn SELECT. Mệnh đề WHERE cho phép bạn đặt điều kiện để chỉ lấy ra các hàng từ bảng cơ sở dữ liệu mà thỏa mãn các điều kiện xác định.
Xem thêm Toán tử so sánh trong JavaScript
Với WHERE, bạn có thể áp dụng các phép so sánh như bằng (=), khác (<>, !=), lớn hơn (>), nhỏ hơn (<), lớn hơn hoặc bằng (>=), nhỏ hơn hoặc bằng (<=), và cả phép so sánh dựa trên một phạm vi (IN, NOT IN), chuỗi con (LIKE, NOT LIKE), hoặc giá trị NULL (IS NULL, IS NOT NULL).
Một ví dụ cơ bản về cú pháp WHERE trong một câu truy vấn SELECT:
SELECT column1, column2, ... FROM table_name WHERE condition;
Ví dụ, để lấy ra tất cả các hàng từ bảng “customers” trong đó tên khách hàng bắt đầu bằng chữ “A”, bạn có thể sử dụng câu truy vấn sau:
SELECT * FROM customers WHERE customer_name LIKE 'A%';
Lưu ý rằng WHERE có thể kết hợp nhiều điều kiện sử dụng các phép logic như AND, OR và NOT để tạo ra các điều kiện lọc phức tạp hơn.
WHERE là một phần quan trọng trong SQL và cho phép bạn truy xuất dữ liệu một cách linh hoạt và chỉ định. Nó giúp bạn lọc và tìm kiếm dữ liệu theo các tiêu chí cụ thể, cung cấp khả năng tìm kiếm và lựa chọn dữ liệu chính xác từ cơ sở dữ liệu của bạn.
Xem thêm First-Order Logic trong Artificial intelligence
Cú pháp của WHERE trong SQL
Cú pháp của mệnh đề WHERE trong SQL như sau:
SELECT column1, column2, ... FROM table_name WHERE condition;
Trong đó:
SELECT
là mệnh đề để chọn các cột mà bạn muốn trả về từ câu truy vấn.FROM
là mệnh đề để chỉ định bảng từ đó bạn muốn lấy dữ liệu.WHERE
là mệnh đề để đặt điều kiện lọc dữ liệu.
Condition trong mệnh đề WHERE là một biểu thức điều kiện mà dữ liệu phải thỏa mãn để được lựa chọn. Có thể sử dụng các phép so sánh, phép logic và các toán tử khác để xác định điều kiện.
Ví dụ, để lấy ra tất cả các khách hàng có tuổi lớn hơn 30 từ bảng “customers”, câu truy vấn sẽ như sau:
SELECT * FROM customers WHERE age > 30;
Điều kiện trong WHERE có thể sử dụng các biểu thức phức tạp hơn, bao gồm việc kết hợp nhiều điều kiện sử dụng phép logic như AND, OR, NOT.
Cú pháp WHERE trong SQL cung cấp khả năng lọc dữ liệu và chỉ trả về các hàng thỏa mãn điều kiện xác định, giúp bạn truy xuất và tìm kiếm dữ liệu theo yêu cầu cụ thể.
Xem thêm OpenCV template Matching
Các phép so sánh trong WHERE
Trong mệnh đề WHERE của SQL, bạn có thể sử dụng các phép so sánh sau đây để xác định các điều kiện lọc dữ liệu:
- Phép so sánh bằng (
=
): Sử dụng để so sánh giá trị của cột với một giá trị cụ thể.
SELECT * FROM table_name WHERE column_name = value;
- Phép so sánh khác (
<>
hoặc!=
): Sử dụng để tìm các giá trị khác với giá trị cụ thể.
SELECT * FROM table_name WHERE column_name <> value;
- Phép so sánh lớn hơn (
>
): Sử dụng để lấy các giá trị lớn hơn một giá trị cụ thể.
SELECT * FROM table_name WHERE column_name > value;
- Phép so sánh nhỏ hơn (
<
): Sử dụng để lấy các giá trị nhỏ hơn một giá trị cụ thể.
SELECT * FROM table_name WHERE column_name < value;
- Phép so sánh lớn hơn hoặc bằng (
>=
): Sử dụng để lấy các giá trị lớn hơn hoặc bằng một giá trị cụ thể.
SELECT * FROM table_name WHERE column_name >= value;
- Phép so sánh nhỏ hơn hoặc bằng (
<=
): Sử dụng để lấy các giá trị nhỏ hơn hoặc bằng một giá trị cụ thể.
SELECT * FROM table_name WHERE column_name <= value;
- Phép so sánh phạm vi (
IN
hoặcNOT IN
): Sử dụng để lấy các giá trị thuộc một danh sách giá trị cụ thể.
SELECT * FROM table_name WHERE column_name IN (value1, value2, ...);
- Phép so sánh chuỗi con (
LIKE
hoặcNOT LIKE
): Sử dụng để lấy các giá trị phù hợp với một mẫu chuỗi.
SELECT * FROM table_name WHERE column_name LIKE pattern;
- Phép so sánh giá trị NULL (
IS NULL
hoặcIS NOT NULL
): Sử dụng để lấy các giá trị rỗng (NULL) hoặc không phải rỗng.
SELECT * FROM table_name WHERE column_name IS NULL;
Đây chỉ là một số phép so sánh thông dụng trong WHERE của SQL. Bạn có thể kết hợp các phép so sánh và sử dụng các phép logic như AND, OR, NOT để tạo ra các điều kiện lọc phức tạp hơn.
Xem thêm Các phép toán logic cơ bản
Kết hợp các điều kiện WHERE
Để tạo ra các điều kiện lọc phức tạp trong mệnh đề WHERE của SQL, bạn có thể kết hợp nhiều điều kiện bằng cách sử dụng các phép logic như AND, OR và NOT. Dưới đây là cách kết hợp các điều kiện trong WHERE:
- Sử dụng phép logic AND: Điều kiện sẽ được thỏa mãn khi cả hai điều kiện đều đúng.
SELECT * FROM table_name WHERE condition1 AND condition2;
Ví dụ: Lấy ra các hàng từ bảng “customers” mà có địa chỉ ở thành phố “New York” và tuổi lớn hơn 30.
SELECT * FROM customers WHERE city = 'New York' AND age > 30;
- Sử dụng phép logic OR: Điều kiện sẽ được thỏa mãn nếu ít nhất một trong hai điều kiện là đúng.
SELECT * FROM table_name WHERE condition1 OR condition2;
Ví dụ: Lấy ra các hàng từ bảng “products” mà có giá trị là “high” hoặc có số lượng tồn kho dưới 10.
SELECT * FROM products WHERE price = 'high' OR quantity < 10;
- Sử dụng phép logic NOT: Điều kiện sẽ được đảo ngược. Nếu điều kiện ban đầu là đúng, nó sẽ trở thành sai và ngược lại.
SELECT * FROM table_name WHERE NOT condition;
Ví dụ: Lấy ra các hàng từ bảng “orders” mà không có trạng thái là “cancelled”.
SELECT * FROM orders WHERE NOT status = 'cancelled';
Bạn cũng có thể kết hợp nhiều điều kiện lồng nhau và sử dụng dấu ngoặc đơn để xác định thứ tự ưu tiên của các phép logic.
Kết hợp các điều kiện WHERE giúp bạn tạo ra các truy vấn linh hoạt và chính xác, lọc dữ liệu dựa trên nhiều tiêu chí và yêu cầu khác nhau.
Xem thêm Hướng dẫn operator (toán tử) trong SAS
WHERE với các phép logic
Trong SQL, bạn có thể kết hợp các điều kiện trong mệnh đề WHERE bằng sử dụng các phép logic như AND, OR và NOT. Dưới đây là cách kết hợp các điều kiện WHERE với các phép logic:
- Sử dụng phép logic AND: Điều kiện sẽ được thỏa mãn khi cả hai điều kiện đều đúng.
SELECT * FROM table_name WHERE condition1 AND condition2;
Ví dụ: Lấy ra các hàng từ bảng “employees” mà có tuổi lớn hơn 30 và lương lớn hơn 5000.
SELECT * FROM employees WHERE age > 30 AND salary > 5000;
- Sử dụng phép logic OR: Điều kiện sẽ được thỏa mãn nếu ít nhất một trong hai điều kiện là đúng.
SELECT * FROM table_name WHERE condition1 OR condition2;
Ví dụ: Lấy ra các hàng từ bảng “products” mà có giá trị là “high” hoặc có số lượng tồn kho dưới 10.
SELECT * FROM table_name WHERE NOT condition;
- Sử dụng phép logic NOT: Điều kiện sẽ được đảo ngược. Nếu điều kiện ban đầu là đúng, nó sẽ trở thành sai và ngược lại.
eSELECT * FROM table_name WHERE NOT condition;
Ví dụ: Lấy ra các hàng từ bảng “orders” mà không có trạng thái là “cancelled”.
SELECT * FROM orders WHERE NOT status = 'cancelled';
Bạn cũng có thể kết hợp nhiều điều kiện và sử dụng dấu ngoặc để xác định thứ tự ưu tiên của các phép logic.
Kết hợp các điều kiện WHERE với các phép logic cho phép bạn tạo ra các truy vấn phức tạp và linh hoạt, lọc dữ liệu dựa trên nhiều tiêu chí và yêu cầu khác nhau.
Xem thêm Kiểm tra lỗ hổng bảo mật SQL injection trong PostgreSQL
Lưu ý khi sử dụng WHERE trong SQL
Khi sử dụng mệnh đề WHERE trong SQL, có một số lưu ý quan trọng bạn nên nhớ để đảm bảo rằng câu truy vấn của bạn hoạt động chính xác và hiệu quả:
- Cẩn thận với việc sử dụng các phép so sánh: Hãy đảm bảo rằng bạn sử dụng các phép so sánh đúng cho kiểu dữ liệu của cột tương ứng. Ví dụ, sử dụng phép so sánh ‘=’ cho các giá trị dạng chuỗi, phép so sánh ‘>’ hoặc ‘<‘ cho các giá trị số.
- Đảm bảo đúng cú pháp và kiểu dữ liệu: Hãy chắc chắn rằng câu truy vấn của bạn tuân theo cú pháp SQL chính xác và đúng kiểu dữ liệu của các cột.
- Sử dụng các toán tử logic đúng cách: Khi kết hợp nhiều điều kiện với các toán tử logic như AND, OR, hãy đảm bảo rằng bạn sử dụng chúng theo đúng ý đồ của mình và sắp xếp các điều kiện đúng thứ tự.
- Sử dụng các biểu thức điều kiện phù hợp: Ngoài các phép so sánh cơ bản, SQL cung cấp các biểu thức điều kiện như IN, BETWEEN, LIKE, IS NULL, NOT NULL, v.v. Hãy sử dụng chúng một cách chính xác và phù hợp với yêu cầu của bạn.
- Tránh lọc dữ liệu không cần thiết: Hãy chỉ lọc dữ liệu cần thiết để truy xuất. Việc lọc quá nhiều dữ liệu có thể