MySQLのレコードに桁区切り(3桁ごとのカンマ)を表示する方法
MySQLでは、数値データに3桁ごとのカンマ(桁区切り文字)を挿入して表示したい場合、FORMAT()関数を使用します。この関数を使うと、金額などの大きな数値を読みやすい形式に整形できます。
ここでは、実際にテーブルを作成して動作を確認してみましょう。
1. サンプルテーブルの作成
まず、以下のようにテーブルを作成します。
mysql> create table DemoTable
-> (
-> Amount DECIMAL(10,2)
-> );
Query OK, 0 rows affected (0.45 sec)
2. レコードの挿入
次に、INSERT文を使ってサンプルデータを挿入します。
mysql> insert into DemoTable values(84848757.60);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(95868685.50);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values(4242342.36);
Query OK, 1 row affected (0.21 sec)
3. テーブルの内容を確認
SELECT文ですべてのレコードを表示して確認しましょう。
mysql> select *from DemoTable;
出力結果
+-------------+
| Amount |
+-------------+
| 84848757.60 |
| 95868685.50 |
| 4242342.36 |
+-------------+
3 rows in set (0.00 sec)
この状態では、数値がそのまま表示され、桁区切りは入っていません。
4. FORMAT()関数で桁区切りを設定する
桁区切り文字を表示するには、次のようなクエリを実行します。FORMAT()関数の第2引数には、小数点以下の桁数を指定します。
mysql> select format(Amount,2) from DemoTable;
出力結果
+------------------+
| format(Amount,2) |
+------------------+
| 84,848,757.60 |
| 95,868,685.50 |
| 4,242,342.36 |
+------------------+
3 rows in set (0.00 sec)
解説
FORMAT()関数は、数値を「#,###,###.##」の形式に丸めて整形し、3桁ごとにカンマを挿入した文字列として返します。上記の例では、小数点以下2桁を指定しているため、「84848757.60」が「84,848,757.60」と表示されています。
なお、FORMAT()関数の戻り値は文字列型になるため注意してください。並べ替えや計算を行う場合は元の数値列を使用し、FORMAT()は表示用として使うのがよいでしょう。また、第3引数にロケール(例:'ja_JP')を指定することで、地域ごとの表記規則に合わせた書式にすることも可能です。
-
MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方
MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ
-
MySQLで複数の行レコードを1行にまとめる方法|CASE WHENを使ったクロス集計の基本
MySQLでは、複数の行に分かれているレコードを、条件ごとに1行へまとめて表示したいケースがあります。たとえば「同じ会社の従業員データを国別に横並びで表示したい」場合などです。こうした処理には CASE WHEN を使うのが定番の方法です。本記事では、実際にテーブルを作成し、複数の行レコードを1行に結合する手順をサンプルSQL付きで解説します。1. サンプルテーブルを作成するまずは、会社名・従業員名・国名を持つテーブルを作成します。mysql> create table demo68 -> ( -> id int not null auto_increment primary