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

条件に基づいて値を減算し、MySQLの列を更新する方法

はじめに

MySQLでは、UPDATE文WHERE句を組み合わせることで、特定の条件を満たす行だけを対象に、列の値を減算して更新することができます。この記事では、実際のSQLコマンドとその実行結果を通じて、手順をわかりやすく解説します。

ステップ1:テーブルを作成する

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
(
   Score int
);
Query OK, 0 rows affected (0.65 sec)

ステップ2:レコードを挿入する

INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(45);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(29);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(56);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(24);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(32);
Query OK, 1 row affected (0.09 sec)

ステップ3:レコードを表示する

SELECT文を使用して、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable;

これにより、以下の出力が得られます。

+-------+
| Score |
+-------+
|    45 |
|    29 |
|    56 |
|    24 |
|    32 |
+-------+
5 rows in set (0.00 sec)

条件付きで値を減算して列を更新する

ここからが本題です。特定の条件(この例では「Scoreが30より大きい」)を満たす行に対してのみ値を減算して更新するには、次のようなUPDATE文を使用します。

mysql> update DemoTable set Score=Score-2 where Score > 30;
Query OK, 3 rows affected (0.14 sec)
Rows matched: 3 Changed: 3 Warnings: 0

このクエリでは、「Score > 30」という条件に一致した3行だけが更新対象となり、それぞれのScoreから2が減算されます。条件に一致しない行はそのまま維持されます。

更新結果の確認

もう一度テーブルのレコードを確認してみましょう。

mysql> select *from DemoTable;

以下の出力が得られます。

+-------+
| Score |
+-------+
|    43 |
|    29 |
|    54 |
|    24 |
|    30 |
+-------+
5 rows in set (0.00 sec)

出力を見ると、45→43、56→54、32→30と、条件に一致した行だけが正しく更新されていることがわかります。29と24は30以下のため、変更されていません。

押さえておきたいポイント

  • SET Score=Score-2:現在の値から指定した値を減算します。加算したい場合は「+」に置き換えるだけでOKです。
  • WHERE句は必須:WHERE句を省略すると、テーブル内のすべての行が更新されてしまうため注意が必要です。
  • 実行結果の読み方:「Rows matched」は条件に一致した行数、「Changed」は実際に値が変更された行数を示します。
  1. MySQLで列の値の先頭に文字列を追加(連結)する方法

    MySQLでは、列の値の先頭に文字列を追加したい場合、CONCAT関数を使用します。CONCAT関数はUPDATE文と組み合わせることで、既存のデータを一括して更新できます。 CONCAT関数とは CONCAT関数は、複数の文字列を連結するための関数です。「CONCAT(文字列1, 文字列2, ...)」のように引数を指定すると、それらを順番に結合した結果を返します。この特性を利用することで、列の値の前や後ろに任意の文字列を付加できます。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table PrependStringOnCOlumn

  2. JavaでMySQLデータベースのレコードを更新する方法【UPDATE文の使い方を実例で解説】

    MySQLデータベースのテーブルに格納されたデータを更新するには、UPDATEコマンドを使用します。本記事では、UPDATE文の基本構文から、実際にテーブルを作成し、Java(JDBC)経由でレコードを更新するまでの一連の手順を、サンプルコード付きで詳しく解説します。 UPDATE文の基本構文 MySQLで既存のデータを更新する場合、以下の構文を使用します。 update テーブル名 set カラム名1 = 値1, ....N where 条件; where句で条件を指定しないと、テーブル内のすべてのレコードが更新されてしまうため注意が必要です。 ステップ1:テーブルの作成 まずは更新用のサン