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

MySQL IN()関数がNULLを返す場合?


MySQL IN()関数が結果としてNULLを返す2つのケース-

ケース-1-左側の式がNULLの場合

IN()関数は、左側の式がNULLの場合、NULLを返します。次の例はそれを示します-

mysql> Select NULL IN (1,2,3,4,10);
+----------------------+
| NULL IN (1,2,3,4,10) |
+----------------------+
|       NULL           |
+----------------------+
1 row in set (0.00 sec)
ケース-2-リスト内の式の1つがNULLであり、一致するものが見つからない場合

IN()関数は、一致するものが見つからず、リスト内の式の1つがNULLの場合、NULLを返します。一致するものがあり、リスト内の式の1つがNULLの場合、出力として1が返されます。次の例はそれを示します-

mysql> Select 10 IN (NULL,11,12);
+--------------------+
| 10 IN (NULL,11,12) |
+--------------------+
|      NULL          |
+--------------------+
1 row in set (0.00 sec)

mysql> Select 10 IN (NULL,11,12,10);
+-----------------------+
| 10 IN (NULL,11,12,10) |
+-----------------------+
|         1             |
+-----------------------+
1 row in set (0.00 sec)

  1. MySQLで入力がnullの場合、date_formatにnullを返しますか?

    MySQLで入力がnullの場合、IF()関数を使用してdate_formatにnullを返します。構文は次のとおりです- SELECT IF(yourDateColumnName,date_format(yourDateColumnName, '%d/%m/%Y'),NULL) FROM yourTableName; 上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです- mysql> create table returnNullWhenInputIsNullDemo    -> ( &nbs

  2. MySQLでレコードがNULLの場合、新しい列に0を返しますか?

    このために、CASEステートメントを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable703 (Price int); Query OK, 0 rows affected (0.46 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable703 values(102); Query OK, 1 row affected (0.27 sec) mysql> insert into DemoTable703 values(null); Query