MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの「AND」と「&&」の違いは?


注:ANDと&&の違いは1つだけです。それは、ANDが標準であり、&&が所有権構文であるということです。

上記のステートメントを除いて、ANDと&&の間に違いはありません。すべての条件を見てみましょう。

ANDと&&の結果は常に1または0になります。ANDと&&はどちらも論理演算子であることがわかっているため、複数のオペランドがあり、いずれかが値0の場合、結果は0になります。それ以外の場合は1になります。

ANDと&&のデモは次のとおりです。

ケース1(a) :両方のオペランドが1の場合。ANDを使用します。

クエリは次のとおりです。

mysql> select 1 AND 1 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

ケース1(b) :両方のオペランドが1の場合&&を使用します。

クエリは次のとおりです。

mysql> select 1 && 1 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)

ケース2(a) :いずれかのオペランドが0の場合、結果は0になります。ANDを使用します。

クエリは次のとおりです。

mysql> select 1 AND 0 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

ケース2(b) :いずれかのオペランドが0の場合、結果は0になります。&&を使用します。

クエリは次のとおりです。

mysql> select 1 && 0 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

これがNULLの場合です。

ケース3(a): いずれかのオペランドがNULLの場合、結果はNULLになります。 ANDを使用します。

クエリは次のとおりです。

mysql> select NULL AND 1 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|   NULL |
+--------+
1 row in set (0.00 sec)

ケース3(b) :いずれかのオペランドがNULLの場合、結果はNULLになります。 &&を使用します。

クエリは次のとおりです。

mysql> select NULL && 1 as Result;

出力は次のとおりです。

+--------+
| Result |
+--------+
|   NULL |
+--------+
1 row in set (0.00 sec)

注:上記の場合は、1と0だけに依存するわけではありません。ゼロ以外の値はすべて真になります。つまり、2つの負の数のANDまたは&&を実行すると、結果は1になります。

ネガティブなケースを見てください。クエリは次のとおりです。

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)

上記で、いずれかの値が0の場合、結果はANDと&&の両方で0になります。クエリは次のとおりです。

mysql> select -10 AND 0 as Result;
+--------+
| Result |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

ポジティブなケースを見てください。クエリは次のとおりです。

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)

この場合、いずれかのオペランドが0になると、結果は0になります。クエリは次のとおりです。

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)

  1. MySQLのintvalue='1'とintvalue=1の違いは?

    intvalue=1を使用する必要があります。ステートメントintvalue=’1’は、MySQLによって内部的にcast( ‘1’ as int)に変換されます。 まずテーブルを作成しましょう- mysql> create table DemoTable1566    -> (    -> intvalue int    -> ); Query OK, 0 rows affected (0.64 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert

  2. MySQLでは、!=NULLとISNOT NULLの違いは何ですか?

    値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970    (    Value int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa