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

MySQLでVARCHAR型をINT型にキャストする方法【CAST関数の使い方】

MySQLでVARCHAR型の値を整数(INT)に変換するには、CAST()関数を使用します。この記事では、CAST()関数の基本構文から、実際にテーブルを作成してデータを変換するまでの手順を、具体例とともにわかりやすく解説します。

CAST()関数の基本構文

MySQLでは、CAST()関数を使うことで、あるデータ型から別のデータ型へ値を変換できます。基本構文は以下の通りです。

cast(変換したい値 as 変換後のデータ型)

サンプルテーブルの作成

まず、CREATEコマンドを使って、VARCHAR型のカラムを持つテーブルを作成しましょう。

mysql> create table VarchartointDemo
   -> (
   -> Value varchar(100)
   -> );
Query OK, 0 rows affected (0.51 sec)

テストデータの挿入

次に、INSERTコマンドでテーブルにレコードを挿入します。クエリは以下の通りです。

mysql> insert into VarchartointDemo values('123');
Query OK, 1 row affected (0.26 sec)

mysql> insert into VarchartointDemo values('234');
Query OK, 1 row affected (0.16 sec)

SELECT文ですべてのレコードを確認してみましょう。

mysql> select *from VarchartointDemo;

実行結果は以下の通りです。

+-------+
| Value |
+-------+
| 123   |
| 234   |
+-------+
2 rows in set (0.00 sec)

VARCHAR型をINT型にキャストする手順

VARCHAR型の値を整数に変換するには、以下の構文を使用します。

SELECT CAST(カラム名 AS 変換後のデータ型) FROM テーブル名;

それでは、上記の構文を実際に適用して、VARCHAR型を整数(UNSIGNED=符号なし整数)に変換してみます。

mysql> SELECT CAST(Value AS UNSIGNED) FROM VarchartointDemo;

実行結果:

+-------------------------+
| CAST(Value AS UNSIGNED) |
+-------------------------+
|                     123 |
|                     234 |
+-------------------------+
2 rows in set (0.00 sec)

出力結果を見ると、VARCHAR型だった値「'123'」「'234'」が、整数の123234として表示されていることがわかります。このように、CAST()関数を使えば、文字列型から数値型への変換を簡単に行うことができます。

補足:CONVERT()関数との違い

MySQLには、CAST()関数と同様の役割を持つCONVERT()関数も用意されています。両者は基本的に同じ結果を返しますが、CONVERT()関数は文字セット(キャラクタセット)の変換にも対応している点が異なります。単純なデータ型の変換であれば、どちらの関数を使っても問題ありませんので、用途や可読性に応じて使い分けるとよいでしょう。

  1. MySQLのCAST関数で数値オーバーフローを処理する方法

    MySQLのCAST関数によるオーバーフロー処理とはMySQLでは、数値式を評価する際に結果がデータ型の範囲を超えると、オーバーフローとしてエラーメッセージが返されます。しかし、CAST関数を使って数値をUNSIGNED型に変換することで、このようなオーバーフローを回避し、正しい計算結果を取得できます。オーバーフローが発生するケース例えば、BIGINT型の最大値「9223372036854775807」に1を加算すると、範囲を超えるためMySQLはエラーを返します。mysql> Select 9223372036854775807 + 1;ERROR 1690 (22003): BIGI

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected