比較の演算の結果は、1 ( TRUE ) 、0 ( FALSE ) 、または NULL の値になります。
これらの演算は、数字とストリングの両方に適応します。必要に応じて、
ストリングは数字に、数字はストリングに自動的に変換されます。

——————————————————————
比較の演算
比較の演算の結果は、1 ( TRUE ) 、0 ( FALSE ) 、または NULL の値になります。
このセクションの関数のうちには、1 ( TRUE ) 、0 ( FALSE ) 、
または NULL 以外の値を戻すものもあります。LEAST() および GREATEST()
などがその例です。
——————————————————————
mysql> select 1;
+—+
| 1 |
+—+
| 1 |
+—+
1 row in set (0.00 sec)

mysql> select 1 = 1;
+——-+
| 1 = 1 |
+——-+
| 1 |
+——-+
1 row in set (0.00 sec)

mysql> select 1 = 2;
+——-+
| 1 = 2 |
+——-+
| 0 |
+——-+
1 row in set (0.00 sec)

mysql>

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
+———+—————+————+
| 1 <=> 1 | NULL <=> NULL | 1 <=> NULL |
+———+—————+————+
| 1 | 1 | 0 |
+———+—————+————+
1 row in set (0.01 sec)

mysql> SELECT 1 BETWEEN 2 AND 3;
+——————-+
| 1 BETWEEN 2 AND 3 |
+——————-+
| 0 |
+——————-+
1 row in set (0.00 sec)

mysql> SELECT 'b' BETWEEN 'a' AND 'c';
+————————-+
| ‘b’ BETWEEN ‘a’ AND ‘c’ |
+————————-+
| 1 |
+————————-+
1 row in set (0.00 sec)

mysql>

——————————————————————
ISNULL(expr)
expr が NULL の場合、ISNULL() は 1 を戻し、それ以外では 0 を戻します。
——————————————————————

mysql> select ISNULL(NULL);
+————–+
| ISNULL(NULL) |
+————–+
| 1 |
+————–+
1 row in set (0.00 sec)

mysql> SELECT ISNULL(1+1);
+————-+
| ISNULL(1+1) |
+————-+
| 0 |
+————-+
1 row in set (0.00 sec)

mysql> SELECT ISNULL(1/0);
+————-+
| ISNULL(1/0) |
+————-+
| 1 |
+————-+
1 row in set (0.00 sec)

mysql>

isnull

——————————————————————
IFNULL(expr1,expr2)
expr1 が NULL でない場合、IFNULL() は expr1 を戻し、それ以外では expr2 を
戻します。IFNULL() は、使用されている文脈によって、数値値もしくはストリング値
を戻します。
——————————————————————
mysql> SELECT IFNULL(1,0);
+————-+
| IFNULL(1,0) |
+————-+
| 1 |
+————-+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(NULL,10);
+—————–+
| IFNULL(NULL,10) |
+—————–+
| 10 |
+—————–+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(1/0,10);
+—————-+
| IFNULL(1/0,10) |
+—————-+
| 10.0000 |
+—————-+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(1/0,'yes');
+——————-+
| IFNULL(1/0,’yes’) |
+——————-+
| yes |
+——————-+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(NULL,'NULLなのでこちらを表示');
+————————————————+
| IFNULL(NULL,’NULLなのでこちらを表示’) |
+————————————————+
| NULLなのでこちらを表示 |
+————————————————+
1 row in set (0.01 sec)

mysql> SELECT IFNULL('データはNULLでは無い','NULLなのでこちらを表示');
+————————————————————————–+
| IFNULL(‘データはNULLでは無い’,’NULLなのでこちらを表示’) |
+————————————————————————–+
| データはNULLでは無い |
+————————————————————————–+
1 row in set (0.01 sec)

mysql>

ifnull

——————————————————————
NULLIF(expr1,expr2)
expr1 = expr2 が true の場合は NULL を返し、それ以外は expr1 を返します。
これは、CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END と同様です。
——————————————————————

mysql> SELECT NULLIF(1,1);
+————-+
| NULLIF(1,1) |
+————-+
| NULL |
+————-+
1 row in set (0.05 sec)

mysql> SELECT NULLIF(1,2);
+————-+
| NULLIF(1,2) |
+————-+
| 1 |
+————-+
1 row in set (0.00 sec)

mysql> SELECT NULLIF('おなじ','おなじ');
+———————————+
| NULLIF(‘おなじ’,’おなじ’) |
+———————————+
| NULL |
+———————————+
1 row in set (0.00 sec)

mysql> SELECT NULLIF('おなじ','ちがう');
+———————————+
| NULLIF(‘おなじ’,’ちがう’) |
+———————————+
| おなじ |
+———————————+
1 row in set (0.00 sec)

mysql>

nullif

——————————————————————
LEAST(value1,value2,…)
引数ふたつ以上では、最小の ( 最小値の ) 引数を戻します。
引数は次のルールを使用して比較されます戻り値が INTEGER 文脈で使用されている場合、
またはすべての引数が整数値である場合、それらは整数として比較されます。
戻り値が REAL 文脈で使用されている場合、またはすべての引数が実数値である場合、
それらは実数として比較されます。
引数のいずれかが大文字小文字の区別のあるストリングである場合、
引数は大文字小文字の区別のあるストリングとして比較されます。
他のすべてのケースでは、引数は大文字小文字の区別のあるストリングとして比較されます。
引数のどれかが NULL である場合、LEAST() は NULL を戻します。
——————————————————————

mysql> SELECT LEAST('B','A','C');
+——————–+
| LEAST(‘B’,’A’,’C’) |
+——————–+
| A |
+——————–+
1 row in set (0.07 sec)

mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
+—————————+
| LEAST(34.0,3.0,5.0,767.0) |
+—————————+
| 3.0 |
+—————————+
1 row in set (0.00 sec)

mysql> SELECT LEAST(2,0);
+————+
| LEAST(2,0) |
+————+
| 0 |
+————+
1 row in set (0.00 sec)

mysql>

——————————————————————
GREATEST(value1,value2,…)
引数ふたつ以上では、最大の ( 最大値の ) 引数を戻します。それらの引数は、
LEAST() に対するものと同じルールで比較されます。
——————————————————————
mysql> SELECT GREATEST(2,0);
+—————+
| GREATEST(2,0) |
+—————+
| 2 |
+—————+
1 row in set (0.01 sec)

mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
+——————————+
| GREATEST(34.0,3.0,5.0,767.0) |
+——————————+
| 767.0 |
+——————————+
1 row in set (0.00 sec)

mysql> SELECT GREATEST('B','A','C');
+———————–+
| GREATEST(‘B’,’A’,’C’) |
+———————–+
| C |
+———————–+
1 row in set (0.00 sec)

mysql>

———————————————————–
IF(expr1,expr2,expr3)
expr1 が TRUE である場合は ( expr1 <> 0 および expr1 <> NULL ) 、
IF() は expr2 を戻します。それ以外では、expr3 を戻します。
IF() は、使用されている文脈によって、数値値もしくはストリング値を戻します。
———————————————————–

mysql> SELECT IF(1>2,2,3);
+————-+
| IF(1>2,2,3) |
+————-+
| 3 |
+————-+
1 row in set (0.00 sec)

mysql> SELECT IF(1=1,2,3);
+————-+
| IF(1=1,2,3) |
+————-+
| 2 |
+————-+
1 row in set (0.00 sec)

mysql> SELECT IF(1=1,'おなじ値','違う値');
+————————————+
| IF(1=1,’おなじ値’,’違う値’) |
+————————————+
| おなじ値 |
+————————————+
1 row in set (0.00 sec)

mysql> SELECT IF(1=2,'おなじ値','違う値');
+————————————+
| IF(1=2,’おなじ値’,’違う値’) |
+————————————+
| 違う値 |
+————————————+
1 row in set (0.00 sec)

mysql> SELECT IF(1>2,'1>2は正しい','1>2は間違い');
+———————————————+
| IF(1>2,’1>2は正しい’,’1>2は間違い’) |
+———————————————+
| 1>2は間違い |
+———————————————+
1 row in set (0.01 sec)

mysql>

if

参考サイト
——————————————
11.1.3. 比較関数と演算子