Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa 'AND' và '&&' trong MySQL?

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)