LƯU Ý:Chỉ có một điểm khác biệt giữa AND và &&là AND là một tiêu chuẩn trong khi &&là cú pháp quyền sở hữu.
Ngoại trừ câu lệnh trên, không có sự khác biệt giữa AND và &&. Hãy để chúng tôi xem xét tất cả các điều kiện.
Kết quả của AND và &&sẽ luôn là 1 hoặc 0. Như chúng ta đã biết AND và &&đều là toán tử logic, nếu có nhiều hơn một toán hạng và bất kỳ một trong số chúng có giá trị 0 thì kết quả sẽ trở thành 0, ngược lại là 1.
Đây là bản demo của AND và &&.
Trường hợp 1 (a) :Nếu cả hai toán hạng là 1. Sử dụng AND.
Truy vấn như sau:
mysql> select 1 AND 1 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
Trường hợp 1 (b) :Nếu cả hai toán hạng là 1. Sử dụng &&.
Truy vấn như sau:
mysql> select 1 && 1 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
Trường hợp 2 (a) :Nếu bất kỳ một toán hạng nào là 0 thì kết quả sẽ trở thành 0. Sử dụng AND.
Truy vấn như sau:
mysql> select 1 AND 0 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
Trường hợp 2 (b) :Nếu bất kỳ một toán hạng nào là 0 thì kết quả sẽ trở thành 0. Sử dụng &&.
Truy vấn như sau:
mysql> select 1 && 0 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
Đây là trường hợp NULL.
Trường hợp 3 (a): Nếu bất kỳ một toán hạng nào là NULL thì kết quả trở thành NULL. Sử dụng AND.
Truy vấn như sau:
mysql> select NULL AND 1 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
Trường hợp 3 (b) :Nếu bất kỳ một toán hạng nào là NULL thì kết quả trở thành NULL. Sử dụng &&.
Truy vấn như sau:
mysql> select NULL && 1 as Result;
Sau đây là kết quả:
+--------+ | Result | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
LƯU Ý:Các trường hợp được thảo luận ở trên không chỉ phụ thuộc vào 1 và 0. Mọi giá trị khác 0 đều đúng, nghĩa là nếu chúng ta thực hiện AND hoặc &&của hai số âm thì kết quả sẽ trở thành 1.
Nhìn vào trường hợp tiêu cực. Truy vấn như sau:
mysql> select -10 AND -30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.04 sec) mysql> select -10 && -30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
Trong phần trên nếu bất kỳ giá trị nào là 0 thì kết quả sẽ trở thành 0 trong cả AND và &&. Truy vấn như sau:
mysql> select -10 AND 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)
Nhìn vào trường hợp tích cực. Các truy vấn như sau:
mysql> select 10 AND 30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec) mysql> select 10 && 30 as Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
Trong trường hợp này, nếu bất kỳ toán hạng nào trở thành 0, thì kết quả sẽ là 0. Truy vấn như sau:
mysql> select 10 and 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec) mysql> select 10 && 0 as Result; +--------+ | Result | +--------+ | 0 | +--------+ 1 row in set (0.00 sec)