MySQLでUPDATE文によるテーブル更新時に四則演算(加算・減算・乗算・除算)を実行する方法
MySQLでは、UPDATE文を使ってテーブルを更新する際に、列同士の値に対して足し算(+)、引き算(−)、掛け算(*)、割り算(/)といった四則演算を直接実行できます。この記事では、その基本的な構文と実際の動作を具体例とともに解説します。
基本構文
加算(+)演算子を実行する場合の基本構文は以下の通りです。
update yourTableName set yourColumnName3=(yourColumnName1+yourColumnName2)
この構文は加算用のものですが、他の演算を行いたい場合は記号を −(減算)、*(乗算)、/(除算) に変更するだけで同じように使えます。
サンプルテーブルの作成
まず、演算結果を格納するためのテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> Number1 int,
-> Number2 int,
-> AddResult int,
-> MinusResult int,
-> MultiplyResult int,
-> DivideResult int
-> );
Query OK, 0 rows affected (0.89 sec)次に、INSERTコマンドを使ってレコードを挿入します。
mysql> insert into DemoTable(Number1,Number2) values(40,20); Query OK, 1 row affected (0.16 sec)
SELECT文でテーブル内の全レコードを表示して確認してみましょう。
mysql> select *from DemoTable;
実行すると、以下のような出力が得られます。演算結果の列はまだNULLになっています。
+---------+---------+-----------+-------------+----------------+--------------+ | Number1 | Number2 | AddResult | MinusResult | MultiplyResult | DivideResult | +---------+---------+-----------+-------------+----------------+--------------+ | 40 | 20 | NULL | NULL | NULL | NULL | +---------+---------+-----------+-------------+----------------+--------------+ 1 row in set (0.00 sec)
UPDATE文で四則演算を実行する
ここからが本題です。MySQLのUPDATE文を使って、加算・減算・乗算・除算をそれぞれ実行するクエリは以下のようになります。
mysql> update DemoTable set AddResult=(Number1+Number2); Query OK, 1 row affected (0.22 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update DemoTable set MinusResult=(Number1-Number2); Query OK, 1 row affected (0.08 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update DemoTable set MultiplyResult=(Number1*Number2); Query OK, 1 row affected (0.08 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update DemoTable set DivideResult=(Number1/Number2); Query OK, 1 row affected (0.07 sec) Rows matched: 1 Changed: 1 Warnings: 0
更新後の結果を確認する
もう一度SELECT文でテーブルの内容を確認してみます。
mysql> select *from DemoTable;
実行すると、以下のように各演算結果が正しく格納されていることがわかります。
+---------+---------+-----------+-------------+----------------+--------------+ | Number1 | Number2 | AddResult | MinusResult | MultiplyResult | DivideResult | +---------+---------+-----------+-------------+----------------+--------------+ | 40 | 20 | 60 | 20 | 800 | 2 | +---------+---------+-----------+-------------+----------------+--------------+ 1 row in set (0.00 sec)
まとめ
このように、MySQLのUPDATE文では「SET 列名 = (式)」の形式で、既存の列の値を使った四則演算を簡単に実行できます。40 + 20 = 60、40 − 20 = 20、40 * 20 = 800、40 / 20 = 2 という結果がそれぞれ対応する列に保存されました。なお、除算の場合、MySQLは小数点以下も計算するため、結果が整数にならない場合はDECIMAL型やFLOAT型の列を用意しておくとよいでしょう。
-
MySQLのINSERTステートメントでVARCHAR型の日時データに分を加算する方法
はい、MySQLではテーブルに値を挿入する際に、分を加算することが可能です。本記事では、VARCHAR型として保存されている日時データに対して、STR_TO_DATE関数とDATE_ADD関数を組み合わせて分を加算する手順を具体例とともに解説します。サンプルテーブルの作成まず、テーブルを作成します。ここでは、日時をVARCHAR型(最大20文字)で格納するカラムを持つテーブルを定義します。mysql> create table DemoTable2026 -> ( -> Arrival
-
MySQLでテーブルAとBを比較し、Bに存在しないデータをテーブルCに挿入する方法
MySQL:テーブルAとBを比較し、Bに存在しないデータをCへ挿入する方法テーブルAのデータとテーブルBを比較し、Bに存在しないレコードだけをテーブルCに挿入したい場合は、LEFT JOIN(左外部結合)を使うのが最もシンプルで確実な方法です。ここでは、3つのテーブル(demo20=テーブルA、demo21=テーブルB、demo22=テーブルC)を使って、具体的な手順を順番に解説します。ステップ1:テーブルA(demo20)を作成するまず、比較元となる最初のテーブルを作成します。mysql> create table demo20 −> ( −> id