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

MySQLで数値の末尾のゼロを削除する方法

MySQLで末尾のゼロを削除するには?

MySQLでは、trim()関数を使うことで、数値の末尾に付く余分なゼロ(後続ゼロ)を削除できます。基本の構文は以下のとおりです。

select trim(yourColumnName)+0 As anyAliasName from yourTableName;

ポイントは、trim()関数の結果に「+0」を加えることです。これにより値が数値として再評価され、小数点以下の不要なゼロが自動的に取り除かれます。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table removeTrailingZero
-> (
-> Number DECIMAL(10,4)
-> );
Query OK, 0 rows affected (0.83 sec)

ここでは、小数点第4位まで格納できる DECIMAL(10,4) 型のカラムを持つテーブルを作成しています。

レコードの挿入

次に、insertコマンドを使っていくつかのレコードを挿入します。

mysql> insert into removeTrailingZero values(10.789);
Query OK, 1 row affected (0.19 sec)

mysql> insert into removeTrailingZero values(89.90);
Query OK, 1 row affected (0.18 sec)

mysql> insert into removeTrailingZero values(8999.70);
Query OK, 1 row affected (0.20 sec)

mysql> insert into removeTrailingZero values(0.40);
Query OK, 1 row affected (0.23 sec)

mysql> insert into removeTrailingZero values(0.0);
Query OK, 1 row affected (0.16 sec)

登録データの確認

select文ですべてのレコードを表示してみましょう。

mysql> select * from removeTrailingZero;

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

+-----------+
| Number |
+-----------+
| 10.7890 |
| 89.9000 |
| 8999.7000 |
| 0.4000 |
| 0.0000 |
+-----------+
5 rows in set (0.00 sec)

ご覧のとおり、DECIMAL(10,4) 型で定義しているため、すべての値が小数点以下4桁で表示され、意味のない末尾のゼロが付いています。

末尾のゼロを削除するクエリ

それでは、trim()関数を使って末尾のゼロを削除してみましょう。

mysql> select trim(Number)+0 As WithoutTrailingZero from removeTrailingZero;

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

+---------------------+
| WithoutTrailingZero |
+---------------------+
| 10.789 |
| 89.9 |
| 8999.7 |
| 0.4 |
| 0 |
+---------------------+
5 rows in set (0.00 sec)

このように、「10.7890」は「10.789」に、「89.9000」は「89.9」に変換され、無駄な末尾のゼロがきれいに除去されました。整数となる「0.0000」は単に「0」と表示されます。

補足:「+0」を付ける理由

trim()関数は本来、文字列の前後の空白を除去するための関数です。数値カラムに適用すると、一度文字列として処理されます。そこに「+0」を加えることで暗黙的に数値へキャストされ、MySQLが数値を最短の形式で表示するため、結果として末尾のゼロが削除された状態になります。この組み合わせを覚えておくと、DECIMAL型の見栄えを整えたい場面で非常に便利です。

  1. MySQLで列を更新し、末尾のアンダースコア(_)を削除する方法

    MySQLで文字列の末尾にある特定の値(この場合はアンダースコア「_」)を削除したい場合、TRIM()関数を使用します。以下にUPDATE文の基本構文を示します。update yourTableName set yourColumnName=trim(trailing _ from yourColumnName);サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1521 -> ( -> StudentCode varchar(20) -> ); Query OK, 0 r

  2. MySQLで末尾のスペースを削除する方法:RTRIM()関数の使い方

    MySQLで文字列の末尾(右側)のスペースを削除したい場合は、RTRIM()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、RTRIM()を使って末尾の余分なスペースを取り除く手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> FirstName varchar(50) -> ); Query OK, 0 rows affected (1.38 sec)ここでは、FirstNameというvarchar型のカラムを