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

【MySQL】変数の値を使ってカラムに整数を加算する方法

MySQLで変数を設定するにはSET文を使用します。また、変数に格納した値をテーブルのカラムに加算したい場合は、UPDATE文SET句を組み合わせることで実現できます。

基本構文

set @anyVariableName:=yourValue;
update yourTableName set yourColumnName=yourColumnName+@yourVariableName;

それでは、実際にサンプルを使って手順を見ていきましょう。

1. テーブルを作成する

まず、以下のクエリでテーブルを作成します。

mysql> create table DemoTable
-> (
-> Number int
-> );
Query OK, 0 rows affected (0.68 sec)

2. レコードを挿入する

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

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values(60);
Query OK, 1 row affected (0.13 sec)

3. レコードを表示して確認する

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

mysql> select *from DemoTable;

出力結果

+--------+
| Number |
+--------+
| 10 |
| 20 |
| 40 |
| 60 |
+--------+
4 rows in set (0.00 sec)

4. 変数の値をカラムに加算する

以下が、変数に格納した整数値をカラムに加算するクエリです。まず変数「@intValue」に100を設定し、その値を全レコードのNumberカラムに加算しています。

mysql> set @intValue:=100;
Query OK, 0 rows affected (0.00 sec)

mysql> update DemoTable set Number=Number+@intValue;
Query OK, 4 rows affected (0.15 sec)
Rows matched: 4 Changed: 4 Warnings: 0

5. 更新後のレコードを確認する

もう一度SELECT文を実行して、テーブルの内容を確認してみましょう。

mysql> select *from DemoTable;

出力結果

+--------+
| Number |
+--------+
| 110 |
| 120 |
| 140 |
| 160 |
+--------+
4 rows in set (0.00 sec)

このように、すべてのレコードのNumberカラムの値に、変数「@intValue」に設定した100が正しく加算されていることが確認できます。ユーザー定義変数を活用すれば、動的な値を使った柔軟な更新処理が可能になります。

  1. MySQLのVARCHAR型カラムから最大値を正しく取得する方法

    VARCHAR型(文字列型)のカラムに対してそのまま MAX() 関数を使用すると、値は文字列として比較されるため、「8」「901」「10001」のような数値的な大小関係が正しく評価されません。そこで、CAST() を使って値を数値型に変換してから MAX() を適用することで、正確な最大値を取得できます。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable2030 -> ( -> Value varchar(20) -> ); Query OK, 0 row

  2. MySQLで値が「0」の場合に別の列から値を取得する方法

    MySQLで値が「0」の場合に別の列から値を取得する方法MySQLでは、IF()関数を使用することで、特定の列の値が「0」だった場合に、別の列の値を代わりに取得できます。条件分岐を1つのクエリ内で簡単に実現できる便利な関数です。IF()関数の基本構文select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName;この構文では、最初の列の値が「0」であれば2番目の列の値を返し、「0」以外であれば最初の列の値をそのまま返します。サンプルテーブルの作成まず、動作確認用のテー