【MySQL】変換関数


ここでは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)