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

MySQLで数値を人間が読みやすい形式(カンマ区切り)に変換する方法

MySQLで数値を読みやすい形式にするには?

MySQLで大きな数値を「人間が読みやすい」形式、つまり3桁ごとのカンマ区切り付きで表示したい場合は、FORMAT()関数を使用します。FORMAT()関数は、第1引数に数値、第2引数に小数点以下の桁数を指定でき、戻り値は整形された文字列として返されます。

まずは、動作を確認するためのサンプルテーブルを作成しましょう。

mysql> create table DemoTable859(Number bigint);
Query OK, 0 rows affected (1.54 sec)

テストデータの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable859 values(747464646473737);
Query OK, 1 row affected (0.45 sec)
mysql> insert into DemoTable859 values(3836365366464);
Query OK, 1 row affected (0.71 sec)
mysql> insert into DemoTable859 values(8376437647433);
Query OK, 1 row affected (0.46 sec)

登録データの確認

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

mysql> select *from DemoTable859;

実行結果は以下のとおりです。このままでは桁数が多く、値をひと目で把握しづらくなっています。

+-----------------+
| Number |
+-----------------+
| 747464646473737 |
| 3836365366464 |
| 8376437647433 |
+-----------------+
3 rows in set (0.00 sec)

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

MySQLで数値を「人間が読みやすい」形式に変換するクエリは以下のとおりです。第2引数に「0」を指定することで、小数点以下を表示せず、整数部分のみを3桁ごとのカンマ区切りで整形できます。

mysql> select format(Number, 0) AS HumanReadableFormat from DemoTable859;

実行すると、以下のように出力されます。

+---------------------+
| HumanReadableFormat |
+---------------------+
| 747,464,646,473,737 |
| 3,836,365,366,464 |
| 8,376,437,647,433 |
+---------------------+
3 rows in set (0.00 sec)

補足:FORMAT()関数のポイント

  • 戻り値は文字列:FORMAT()の結果は文字列として返されるため、そのまま数値計算には使えません。表示用途に限定して使用しましょう。
  • 四捨五入される:第2引数で指定した小数点以下の桁数に応じて、値は四捨五入されます。
  • ロケール対応:第3引数にロケールを指定すると、区切り文字や小数点の記号を地域ごとの形式に変更できます(例:FORMAT(Number, 0, 'de_DE'))。

このように、FORMAT()関数を使えば、レポートや管理画面などでの数値表示を格段に見やすくすることができます。

  1. MySQLのINET_ATON()関数とORDER BYでIPアドレスを正しく並べ替える方法

    MySQLでIPアドレス形式のレコードを正しい順序で並べ替えたい場合は、INET_ATON() 関数を使用します。この関数を使うと、文字列として保存されたIPアドレスを数値に変換できるため、その結果に対して ORDER BY を適用することで、人間が直感的に理解できる自然な順序(昇順・降順)でレコードをソートできます。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> IpAddress varchar(50) -> );Query OK, 0 rows affecte

  2. MySQLで予約語「from」を列名として使用する方法

    MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo