MySQLでDECIMAL型をINT型にキャストする方法
MySQLのFLOOR()関数を使ってDECIMALをINTに変換する
MySQLでは、FLOOR()関数を使用することで、DECIMAL(10進数)型の値をINT(整数)型へ簡単に変換できます。FLOOR()は小数点以下を切り捨てて整数値を返す関数です。
基本構文
構文は以下の通りです。
SELECT FLOOR(カラム名) FROM テーブル名 WHERE 条件;
それでは、実際にサンプルテーブルを作成して動作を確認してみましょう。
サンプルテーブルの作成
まず、以下のクエリでテーブルを作成します。Amountカラムは小数第1位まで格納できるDECIMAL(3,1)型として定義しています。
mysql> create table DecimalToIntDemo
-> (
-> Amount DECIMAL(3,1)
-> );
Query OK, 0 rows affected (0.88 sec)
データの挿入
次に、INSERTコマンドを使ってレコードを挿入します。
mysql> insert into DecimalToIntDemo values(12.5);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DecimalToIntDemo values(50.4);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DecimalToIntDemo values(48.6);
Query OK, 1 row affected (0.10 sec)
登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DecimalToIntDemo;
実行結果は以下の通りです。
+--------+
| Amount |
+--------+
| 12.5 |
| 50.4 |
| 48.6 |
+--------+
3 rows in set (0.00 sec)
このように、小数を含む値が3件登録されていることが確認できます。
FLOOR()関数でINTへのキャストを実行
ここで、冒頭で紹介した構文を適用し、FLOOR()関数を使ってDECIMALの値を整数に変換します。条件として「Amount > 10」を指定しています。
mysql> SELECT FLOOR(Amount) from DecimalToIntDemo
-> where Amount > 10;
実行結果は以下の通りです。DECIMALの値がINTに変換されているのがわかります。
+---------------+
| FLOOR(Amount) |
+---------------+
| 12 |
| 50 |
| 48 |
+---------------+
3 rows in set (0.00 sec)
実行結果のポイント
上記のサンプル結果を見ると、「12.5」「50.4」「48.6」といった小数を含む値が、それぞれ「12」「50」「48」という純粋な整数(INT)値に変換されています。FLOOR()関数は小数点以下を切り捨てるため、四捨五入ではなく切り捨て処理になる点に注意してください。
なお、四捨五入したい場合はROUND()関数、切り上げたい場合はCEILING()関数を使用することで、同様にINT型の結果を得ることができます。用途に応じて使い分けると良いでしょう。
-
MySQLで行を削除する方法|DELETE文の基本と実行例を解説
MySQLでテーブルから特定の行(レコード)を削除するには、DELETE文を使用します。この記事では、実際にサンプルテーブルを作成し、DELETE文を使って行を削除する手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> Cus
-
【MySQL】FLOOR()関数を使って小数部分が整数(.00)のレコードだけを抽出する方法
DECIMAL型のカラムから「55.00」や「9.00」のように小数部分が0(整数値と等しい)レコードだけを取り出したい場合、FLOOR()関数を使うと簡単に実現できます。FLOOR()関数による抽出の考え方FLOOR()は引数の値を切り捨てて整数にする関数です。元の値とFLOOR()した値が一致していれば、その値は小数部分を持たない(小数点以下が0の)数値だと判断できます。たとえば、5.23、8.76、12.00、22.68といったレコードの中から、12.00のようなレコードのみを抽出するイメージです。1. テーブルを作成するまず、検証用のテーブルを作成します。mysql> creat