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

MySQLで数値の累乗を計算するには?^演算子ではなくPOW()関数を使う方法

MySQLでのべき乗計算に^演算子は使える?

答えは「いいえ」です。MySQLにおいて ^ 演算子はビット単位のXOR(排他的論理和)を表す演算子であり、べき乗の計算には使用できません。ある数値を別の数値でべき乗した結果を求めるには、POW() 関数または POWER() 関数を使用します。これら2つの関数は同義であり、どちらを使っても同じ結果が得られます。

サンプルテーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable
(
    BaseValue int,
    PowerValue float
);
Query OK, 0 rows affected (0.48 sec)

レコードの挿入

INSERT文を使って、いくつかのレコードを追加していきます。

mysql> insert into DemoTable values(4,1.9867);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values(10,6.789);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(20,8.9);
Query OK, 1 row affected (0.14 sec)

テーブルの内容を確認する

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

mysql> select *from DemoTable;

上記のクエリを実行すると、以下のような出力が得られます。

+-----------+------------+
| BaseValue | PowerValue |
+-----------+------------+
|         4 | 1.9867     |
|        10 | 6.789      |
|        20 | 8.9        |
+-----------+------------+
3 rows in set (0.00 sec)

POW()関数でべき乗を計算する

次のクエリを実行すると、「BaseValue」を「PowerValue」乗した結果を取得できます。ここでは、先ほど挿入した底の値(BaseValue)と指数の値(PowerValue)をそのまま利用しています。

mysql> select power(BaseValue,PowerValue) AS Result from DemoTable;

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

+--------------------+
| Result             |
+--------------------+
| 15.707700779637127 |
| 6151769.213414385  |
| 379460404302.3042  |
+--------------------+
3 rows in set (0.00 sec)

まとめ

MySQLでべき乗を計算する際は、^ 演算子(ビット単位XOR)ではなく、POW() または POWER() 関数を使いましょう。第一引数に底となる数値、第二引数に指数となる数値を指定するだけで、簡単にべき乗の計算が行えます。他言語の経験がある方は ^ をべき乗と誤解しやすいため、注意が必要です。

  1. MySQLのDATE_FORMAT関数でタイムスタンプから月番号を取得する方法

    MySQLでタイムスタンプ型のカラムから「月の番号だけ」を取り出したい場合、DATE_FORMAT() 関数を使うのが便利です。書式指定子 %m を指定することで、01〜12の形式で月番号を文字列として取得できます。この記事では、実際にテーブルを作成し、データを登録して、月番号を抽出するまでの一連の手順をサンプルコード付きで解説します。1. サンプルテーブルの作成まず、TIMESTAMP型のカラムを持つテーブルを作成します。mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK,

  2. MySQLで特定の値を持つ列の数をカウントする方法【SUM関数の活用】

    はじめにMySQLでは、SUM関数と加算演算子(+)・論理演算子(AND)を組み合わせることで、テーブル内の複数の列に含まれる特定の値(たとえば「1」)の合計個数や、すべての列がその値を持つ行数を簡単に集計できます。本記事では、サンプルテーブルを作成しながら、具体的なSQLクエリの書き方と実行結果をわかりやすく解説します。基本構文特定の値を持つ列の数をカウントする場合、以下のような構文を使用します。selectsum(yourColumnName1 + yourColumnName2 + yourColumnName3 ... N) as `anyAliasName1`,sum(yourCol