ここではMySQLで使える変換関数をまとめて紹介しています。
CAST関数
CAST関数を使うことで、指定した値を、任意の型に変換することが出来ます。
CAST(値 AS 変換する型名)
COALESCE関数
COALESCE関数を使うことで、指定した列・式の値のうち、NULLでない初めの値を返します。
OALESCE(列名1[,列名2・・・])
CONVERT関数
CONVERT関数を使うことで、指定した列・式を指定した型に変換することが出来ます。
CONVERT(値,変換する型名)
NULLIF関数
NULLIF関数を使うことで、指定した2つの列・式の値が等しい場合にNULL値を返します。
NULLIF(列名1,列名2)
2つの値が等しい場合は次のようにNULLが返ってきます。
mysql> SELECT NULLIF(1,1);
+-------------+
| NULLIF(1,1) |
+-------------+
| NULL |
+-------------+
1 row in set (0.02 sec)
mysql> SELECT NULLIF('abc','abc');
+---------------------+
| NULLIF('abc','abc') |
+---------------------+
| NULL |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT NULLIF('','');
+---------------+
| NULLIF('','') |
+---------------+
| NULL |
+---------------+
1 row in set (0.00 sec)
2つの値が等しくない場合は、次のような結果となります。
mysql> SELECT NULLIF(1,2);
+-------------+
| NULLIF(1,2) |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
mysql> SELECT NULLIF('abc','def');
+---------------------+
| NULLIF('abc','def') |
+---------------------+
| abc |
+---------------------+
1 row in set (0.00 sec)
値にNULLを指定すると次のような結果になります。
mysql> SELECT NULLIF('abc',NULL);
+--------------------+
| NULLIF('abc',NULL) |
+--------------------+
| abc |
+--------------------+
1 row in set (0.00 sec)
mysql> SELECT NULLIF(NULL,'def');
+--------------------+
| NULLIF(NULL,'def') |
+--------------------+
| NULL |
+--------------------+
1 row in set (0.00 sec)
mysql> SELECT NULLIF(NULL,NULL);
+-------------------+
| NULLIF(NULL,NULL) |
+-------------------+
| NULL |
+-------------------+
1 row in set (0.00 sec)