技術系

(MySQL)文字列を数値に変換する方法

MySQL型変換

MySQLにおいて文字列を数値に変換(キャスト)する方法を書いていきます。
INSERTするときや、SELECTで値を取得するときに知っておくと便利です。

CAST()関数

SQL上で型変換を行うにはCAST()関数を使います。
構文は以下の通りです。

CAST(変換対象 AS 変換後のデータ型)

変換後の型として指定できるのは次の8種類です。

変換後のデータ型一覧

・SIGNED *符号付き数値型(数値に変換したい場合は基本こちらです。)
・UNSIGNED *符号なし数値型
・DECIMAL
・BINARY
・CHAR *文字列型
・DATE
・DATETIME
・TIME

文字列→数値に変換

CAST()を使って文字列を数値に変換する場合、以下のようになります。

mysql> SELECT CAST("100" AS SIGNED);
+-----------------------+
| CAST("100" AS SIGNED) |
+-----------------------+
| 100 |
+-----------------------+
1 row in set (0.00 sec)

文字列だった”100"が数値としての100に変換されて返ってきました。

なお、変換対象の部分には上記のように直接的に文字列を入れるのではなく、カラム名を指定することもできますので、SELECTをする際にVARCHAR(又はCHAR)で入っている値を数値に変換した上で取得することが可能です。

(おまけ)数値→文字列に変換

解説不要かと思いますが、逆に数値から文字列に変換する場合も念のため記載しておきます。

mysql> SELECT CAST(100 AS CHAR);
+-----------------------+
| CAST(100 AS CHAR)|
+-----------------------+
| 100 |
+-----------------------+
1 row in set (0.00 sec)

他にもいろいろな型に変換することが可能ですので、ぜひ覚えておくと便利かと思います。

-技術系