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

MySQLで数値を最も近い整数に切り捨てる方法|FLOOR()関数の使い方

MySQLで数値を最も近い整数に切り捨てたい場合は、FLOOR() 関数を使用します。FLOOR() 関数は、引数として渡された値以下の最大の整数を返すため、小数点以下をすべて切り捨てた結果が得られます。

FLOOR() 関数の基本構文

SELECT FLOOR(yourColumnName) FROM yourTableName;

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。ここでは価格(Price)を格納する FLOAT 型のカラムを持つテーブルを定義します。

mysql> create table FloorDemo
-> (
-> Price float
-> );
Query OK, 0 rows affected (0.57 sec)

データの挿入

次に、Price カラムへレコードを挿入します。INSERT 文は以下のとおりです。

mysql> insert into FloorDemo values(5.75);
Query OK, 1 row affected (0.21 sec)
mysql> insert into FloorDemo values(5.23);
Query OK, 1 row affected (0.31 sec)
mysql> insert into FloorDemo values(5.50);
Query OK, 1 row affected (0.12 sec)

登録データの確認

SELECT 文を使って、テーブルに登録されたレコードを表示してみましょう。

mysql> select *from FloorDemo;

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

+-------+
| Price |
+-------+
| 5.75 |
| 5.23 |
| 5.5 |
+-------+
3 rows in set (0.00 sec)

3件のレコードが登録されました。これらの値をそれぞれ最も近い整数に切り捨てるために、前述の FLOOR() 関数を使用します。

FLOOR() 関数で切り捨てを実行

FLOOR() 関数を適用したクエリは次のとおりです。

mysql> SELECT FLOOR(Price) from FloorDemo;

実行結果は以下のようになります。

+--------------+
| FLOOR(Price) |
+--------------+
| 5 |
| 5 |
| 5 |
+--------------+
3 rows in set (0.03 sec)

ご覧のとおり、5.75・5.23・5.50 のいずれも小数点以下が切り捨てられ、「5」という整数値が返されました。

補足:FLOOR() と CEIL() の違い

なお、FLOOR() は「切り捨て」を行う関数ですが、逆に「切り上げ」を行いたい場合は CEIL()(または CEILING())関数を使用します。また、四捨五入を行いたい場合には ROUND() 関数が便利です。用途に応じてこれらの関数を使い分けるとよいでしょう。

  1. MySQLクエリでLONGTEXT型の値を整数として扱う方法

    はじめに MySQLでは、LONGTEXT型のカラムに格納された数値は文字列として扱われるため、ORDER BYで並べ替えると辞書順(文字列順)にソートされてしまいます。例えば「9」で始まる大きな桁数の数字が、実際の数値としては小さくても先頭に来るといった問題が発生します。 この記事では、LONGTEXT型の値を整数として評価し、正しく数値順にソートする方法を解説します。 1. サンプルテーブルの作成 まず、LONGTEXT型のカラムを持つテーブルを作成します。 mysql> create table DemoTable -> ( -> Value long

  2. Pythonで小数点以下2桁に丸める方法【round関数の使い方を解説】

    Pythonで数値を小数点以下2桁に丸めたい場合は、組み込み関数の round() を使うのが最も簡単な方法です。この記事では、round() の基本的な使い方から、知っておくべき注意点、より正確な丸めを行う代替手段まで詳しく解説します。 round()関数の基本的な使い方 round() 関数は2つの引数を受け取ります。 第1引数:丸め対象となる数値 第2引数:丸める小数点以下の桁数 小数点以下2桁に丸めたい場合は、第2引数に 2 を指定します。小数点第3位の数字が5以上であれば、第2位の数字は1つ繰り上がります。 >>> round(1.4756, 2) 1.48