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

MySQL IFNULL()関数とNULLIF()関数をどのように区別できますか?


実際、MySQL IFNULL()関数とNULLIF()関数はどちらも、以下に示すものとほぼ同じ構文を持っています-

IFNULL()の構文
IFNULL(expression1, expression2)
NULLIF()の構文
NULLIF(expression1, expression2)

結果として最初の引数を返す方法で区別できます。 IFNULL()関数は、NULLでない場合は結果として最初の引数を返し、NULLIF()関数は、両方の引数が同じでない場合は結果として最初の引数を返します。

mysql> Select IFNULL('Ram','Shyam');
+-----------------------+
| IFNULL('Ram','Shyam') |
+-----------------------+
| Ram                   |
+-----------------------+
1 row in set (0.00 sec)

mysql> Select NULLIF('Ram','Shyam');
+-----------------------+
| NULLIF('Ram','Shyam') |
+-----------------------+
| Ram                   |
+-----------------------+
1 row in set (0.00 sec)

上記の両方の関数の結果セットから、それらは類似しているように見えますが、IFNULL()関数は、最初の引数であり、NULLではないため、「Ram」を返します。一方、NULLIF()関数は、最初の引数であり、2番目の引数とは異なるため、「Ram」を返します。


  1. TODAYとTODAY-7の間の日付を取得するにはどうすればよいですか?」

    日付間の日付を取得するには、を使用する必要があります。ここでは、今日から今日までの日付を取得しています-7日- select *from yourTableName where DATE(yourColumnName) > (NOW() - INTERVAL 7 DAY); 注:現在の日付が「2019-06-02」であるとします。最初にテーブルを作成しましょう。 mysql> create table DemoTable    (    LoginDate date    ); Query OK, 0 rows affe

  2. MySQLで生年月日が1980年から1996年の間であるユーザーの割合をどのように見つけることができますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> DateOfBirth varchar(100)    -> ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('2019/01/31'); Query OK, 1 row affected (0.19