MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説
MySQLで通貨形式を設定する方法
MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。
1. サンプルテーブルを作成する
まず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。
mysql> create table DemoTable
-> (
-> Amount DECIMAL(15,4)
-> );
Query OK, 0 rows affected (0.75 sec)
2. レコードを挿入する
INSERT文を使って、サンプルデータをいくつか登録します。
mysql> insert into DemoTable values(90948484);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(1000000000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(1535353536);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(773646463);
Query OK, 1 row affected (0.20 sec)
3. 登録したデータを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。現時点では、金額がそのままの数値で表示されています。
+-----------------+
| Amount |
+-----------------+
| 90948484.0000 |
| 1000000000.0000 |
| 1535353536.0000 |
| 773646463.0000 |
+-----------------+
4 rows in set (0.00 sec)
4. FORMAT()関数で通貨形式に変換する
ここからが本題です。FORMAT()関数とCONCAT()関数を組み合わせることで、金額を通貨表記に変換できます。
mysql> select concat('USD ',format(Amount,2)) as Currency from DemoTable;実行すると、以下のようにUSDの通貨レコードが正しい形式で表示されます。FORMAT()関数の第2引数に「2」を指定することで小数点以下2桁に丸められ、3桁ごとのカンマ区切りも自動的に付与されます。
+----------------------+
| Currency |
+----------------------+
| USD 90,948,484.00 |
| USD 1,000,000,000.00 |
| USD 1,535,353,536.00 |
| USD 773,646,463.00 |
+----------------------+
4 rows in set (0.23 sec)
まとめ
MySQLで金額データを通貨として表示したい場合は、FORMAT()関数が非常に便利です。カンマ区切りや小数点以下の桁数指定が簡単に行えるため、レポートや管理画面での表示に活用できます。ただし、FORMAT()関数は戻り値が文字列になるため、そのまま集計や計算には使用できない点に注意しましょう。計算が必要な場合は元のDECIMAL型の列を使い、表示時にのみFORMAT()関数を適用するのがおすすめです。
-
MySQLのUPDATE文で1つのクエリを使って複数のレコードを更新する方法
MySQLでは、UPDATEステートメントを使うことで、1つのクエリで複数のカラムや複数のレコードの値をまとめて更新できます。この記事では、実際にサンプルテーブルを作成し、UPDATE文でデータを更新する具体的な手順を解説します。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, &
-
MySQLで複数のレコードをすばやく一括挿入するクエリの書き方
MySQLで複数のレコードを効率よく挿入したい場合、INSERT文を何度も実行するのではなく、1つのINSERT文で複数行をまとめて指定するのがおすすめです。この方法ならデータベースとの通信回数が減り、処理速度が大幅に向上します。 基本構文 複数のレコードをすばやく挿入するには、単一のINSERT文を使い、以下の構文に従います。 insert into yourTableName values(yourValue1,yourValue2,...N),(yourValue1,yourValue2,...N).....N; ポイントは、各行の値セットをカンマ(,)で区切って並べるだけというシンプル