MySQLでbool型をint型に変換する方法【CAST()関数の使い方】
MySQLでbool型をint型に変換するには?
MySQLでbool(ブール)型の値をint(整数)型に変換するには、CAST()関数を使用します。なお、MySQLではbool型は実際にはTINYINT(1)のエイリアスとして扱われるため、値は内部的に1(true)と0(false)として保存されます。
まず、動作確認のためのサンプルテーブルを作成しましょう。
mysql> create table convertBoolToIntDemo
-> (
-> isYoung bool
-> );
Query OK, 0 rows affected (0.69 sec)
テーブルへのデータ挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into convertBoolToIntDemo values(true);
Query OK, 1 row affected (0.18 sec)
mysql> insert into convertBoolToIntDemo values(false);
Query OK, 1 row affected (0.09 sec)
mysql> insert into convertBoolToIntDemo values(true);
Query OK, 1 row affected (0.15 sec)
mysql> insert into convertBoolToIntDemo values(false);
Query OK, 1 row affected (0.18 sec)
テーブルの内容を確認する
SELECTコマンドでテーブル内のレコードを表示してみましょう。
mysql> select * from convertBoolToIntDemo;
実行すると、以下のような結果が出力されます。
+---------+
| isYoung |
+---------+
| 1 |
| 0 |
| 1 |
| 0 |
+---------+
4 rows in set (0.00 sec)
このように、MySQLではbool型のtrueが「1」、falseが「0」として格納されていることが確認できます。
CAST()関数でboolからintへ変換する
それでは、本題であるbool型からint型への変換クエリを見ていきましょう。以下のようにCAST(isYoung=1 AS SIGNED INTEGER)を使用します。
mysql> select cast(isYoung=1 AS SIGNED INTEGER) from convertBoolToIntDemo;
実行結果は以下の通りです。
+-----------------------------------+
| cast(isYoung=1 AS SIGNED INTEGER) |
+-----------------------------------+
| 1 |
| 0 |
| 1 |
| 0 |
+-----------------------------------+
4 rows in set (0.00 sec)
まとめ
MySQLでは、CAST(isYoung=1 AS SIGNED INTEGER)のように、CAST()関数と比較演算子を組み合わせることで、bool型の値を明示的にSIGNED INTEGER(符号付き整数)へ変換できます。
補足として、目的に応じて以下のような代替方法も利用できます。
- IF()関数:
SELECT IF(isYoung=1, 1, 0) FROM テーブル名; - CASE式:
SELECT CASE WHEN isYoung=1 THEN 1 ELSE 0 END FROM テーブル名; - 暗黙的な変換:bool型はTINYINT(1)として扱われるため、多くの場合そのまま整数として演算や出力に使用できます。
-
MySQLでMM/YY形式の日付をYYYY-MM-DD形式に変換する方法
MySQLで「11/15」のようなMM/YY形式の文字列を「2015-11-10」のようなYYYY-MM-DD形式の日付に変換するには、str_to_date()関数を使用します。この関数は、指定したフォーマットに従って文字列を日付値へ変換できる便利な関数です。まずは、サンプル用のテーブルを作成し、日付データを登録していきましょう。テーブルの作成例mysql> create table demo72 -> ( -> due_date varchar(40) -> );Query OK, 0 rows affected (2.96 sec)次に、INSE
-
C++でint型をstring型に変換する方法を解説
整数(int)を文字列(string)に変換したい場合、いくつかの方法があります。まずはC言語由来のitoa関数を使う方法から見ていきましょう。 itoa関数を使う方法 itoaは「integer to ASCII」の略で、整数値を文字列に変換するC言語の関数です。以下のように使用します。 例 #include<iostream> int main() { int a = 10; char *intStr = itoa(a); string str = string(intStr); cout << str; } 出力 このコードを実行す