Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử MySQL
3 để kết hợp nhiều biểu thức Boolean để lọc dữ liệuCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
Giới thiệu về toán tử AND của MySQL
MySQL không có kiểu Boolean tích hợp. Thay vào đó, nó sử dụng số 0 là FALSE và các giá trị khác 0 là TRUE
Toán tử
3 là toán tử logic kết hợp hai hoặc nhiều biểu thức Boolean và trả về 1, 0 hoặc NULLCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
A AND B
Trong biểu thức này, A và B được gọi là toán hạng. Chúng có thể là các giá trị hoặc biểu thức theo nghĩa đen
Toán tử logic AND trả về 1 nếu cả A và B đều khác không và không phải NULL. Nó trả về 0 nếu một trong hai toán hạng bằng 0;
Toán tử logic AND trả về 1 nếu cả A và B đều khác không và KHÔNG NULL. Ví dụ
Code language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
Code language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Toán tử logic AND trả về 0 nếu A hoặc B bằng 0 hoặc cả A và B đều bằng 0
SELECT 1 AND 0, 0 AND 1, 0 AND 0, 0 AND NULL;
Code language: SQL [Structured Query Language] [sql]
Code language: plaintext [plaintext]
+---------+---------+---------+------------+ | 1 AND 0 | 0 AND 1 | 0 AND 0 | 0 AND NULL | +---------+---------+---------+------------+ | 0 | 0 | 0 | 0 | +---------+---------+---------+------------+ 1 row in set [0.00 sec]
Toán tử logic AND trả về NULL nếu một trong hai toán hạng khác không hoặc cả hai toán hạng đều là NULL
Code language: SQL [Structured Query Language] [sql]
SELECT 1 AND NULL, NULL AND NULL;
Code language: plaintext [plaintext]
+------------+---------------+ | 1 AND NULL | NULL AND NULL | +------------+---------------+ | NULL | NULL | +------------+---------------+ 1 row in set [0.00 sec]
Bảng sau minh họa kết quả của toán tử
3 khi kết hợp true, false và nullTRUEFALSENULLTRUETRUEFALSENULLFALSEFALSEFALSEFALSENULLNULLFALSENULLCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
Trong thực tế, bạn sẽ sử dụng toán tử
3 trong mệnh đềCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
7 của câu lệnhCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
8,Code language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
9,Code language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
0 để tạo thành một điều kiện. Ngoài ra, bạn có thể sử dụng toán tửCode language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
3 trong các điều kiện của mệnh đềCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
2 và
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Code language: plaintext [plaintext]
3Code language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Khi đánh giá một biểu thức có chứa toán tử
3, MySQL dừng đánh giá các phần còn lại của biểu thức ngay khi nó có thể xác định kết quảCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
Điều này được gọi là đánh giá ngắn mạch. Nói cách khác, toán tử
3 bị đoản mạch. Ví dụCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
0
A AND B
Dùng thử
1
A AND B
Trong ví dụ này, MySQL chỉ đánh giá phần đầu tiên
6 của biểu thứcCode language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
7Code language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Vì biểu thức
6 trả về 0, MySQL có thể xác định kết quả của toàn bộ biểu thức là 0
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Code language: plaintext [plaintext]
Do đó, MySQL không cần đánh giá phần còn lại của biểu thức, đó là
9;Code language: plaintext [plaintext]
+---------+ | 1 AND 1 | +---------+ | 1 | +---------+ 1 row in set [0.00 sec]
Ví dụ về toán tử AND của MySQL
Hãy sử dụng bảng
0 trong cơ sở dữ liệu mẫu để trình diễnCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 0, 0 AND 1, 0 AND 0, 0 AND NULL;
Câu lệnh sau sử dụng toán tử
3 để tìm khách hàng ở California [CA], Hoa KỳCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
8
A AND B
Dùng thử
0Code language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;
Bằng cách sử dụng toán tử
3, bạn có thể kết hợp nhiều hơn hai biểu thức Boolean. Ví dụ: truy vấn sau đây trả về những khách hàng ở California, Hoa Kỳ và có giới hạn tín dụng lớn hơn 100KCode language: SQL [Structured Query Language] [sql]
SELECT 1 AND 1;