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

MySQLで数値を百万(M)・十億(B)形式に変換する方法

MySQLで数値を百万(M)・十億(B)形式に変換する方法

MySQLでは FORMAT() 関数を使うことで、大きな数値をカンマ区切りの読みやすい形式に整形できます。さらに CASE 式と組み合わせれば、「78B」のような百万(M)・十億(B)単位の省略表記への変換も可能です。ここでは、その手順をサンプルSQL付きで解説します。

1. サンプルテーブルの作成

まず、BIGINT型のカラムを持つテーブルを作成します。

mysql> create table DemoTable
    (
    Value BIGINT
    );
Query OK, 0 rows affected (0.74 sec)

2. レコードの挿入

INSERTコマンドでテーブルにデータを挿入します。

mysql> insert into DemoTable values(78000000000);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(10000000000);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(90000000000);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(450600000000);
Query OK, 1 row affected (0.41 sec)

3. データの確認

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

mysql> select *from DemoTable;

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

+--------------+
| Value        |
+--------------+
| 78000000000  |
| 10000000000  |
| 90000000000  |
| 450600000000 |
+--------------+
4 rows in set (0.00 sec)

4. FORMAT()関数でカンマ区切りに整形する

FORMAT(Value, 0) を使うと、小数点以下を丸めた上で、3桁ごとにカンマを挿入した文字列を取得できます。

mysql> select format(Value,0) as `FormatValue` from DemoTable;

実行結果:

+-----------------+
| FormatValue     |
+-----------------+
| 78,000,000,000  |
| 10,000,000,000  |
| 90,000,000,000  |
| 450,600,000,000 |
+-----------------+
4 rows in set (0.00 sec)

5. 「B(十億)」「M(百万)」表記へ変換する

ダッシュボードなどで「78B」のような短い表記を使いたい場合は、CASE式で桁に応じて分岐し、CONCAT()で単位を連結します。

mysql> SELECT
    CASE
      WHEN Value >= 1000000000 THEN CONCAT(FORMAT(Value / 1000000000, 1), 'B')
      WHEN Value >= 1000000 THEN CONCAT(FORMAT(Value / 1000000, 1), 'M')
      ELSE FORMAT(Value, 0)
    END AS FormatValue
FROM DemoTable;

実行結果:

+-------------+
| FormatValue |
+-------------+
| 78.0B       |
| 10.0B       |
| 90.0B       |
| 450.6B      |
+-------------+
4 rows in set (0.00 sec)

まとめ

  • カンマ区切りの整形には FORMAT() 関数が便利です。
  • 「M」「B」などの省略表記には、CASE式+CONCAT()+除算を組み合わせます。
  • 日本語環境では、同じ要領で「億」「万」単位(例:780億)に置き換えることも可能です。
  1. PHP変数「11:00 AM」をMySQLの時間形式に変換する方法

    PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2

  2. MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説

    MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」