如何在 MySQL 更新中执行增量?


要在 MySQL 中对值进行递增更新,需要借助 SET 命令创建一个变量。创建变量的语法如下 −

set @anyVariableName := 0;

要更新值,需要使用 UPDATE 命令。让我们从创建一个表开始。创建表的查询 −

mysql> create table UpdateValueIncrementally
   −> (
   −> ProductId int
   −> );
Query OK, 0 rows affected (0.90 sec)

使用 select 语句插入记录到表中。查询如下 −

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

mysql> insert into UpdateValueIncrementally values(100);
Query OK, 1 row affected (0.16 sec)

mysql> insert into UpdateValueIncrementally values(1000);
Query OK, 1 row affected (0.09 sec)

mysql> insert into UpdateValueIncrementally values(110);
Query OK, 1 row affected (0.17 sec)

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

使用 select 语句显示表中的所有记录。查询如下 −

mysql> select *from UpdateValueIncrementally;

以下是输出 −

+-----------+
| ProductId |
+-----------+
|        10 |
|       100 |
|      1000 |
|       110 |
|       102 |
+-----------+
5 rows in set (0.00 sec)

以下是递增更新值的查询 −

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

此变量已在上面创建,值为 33333。以下是更新值和递增值的查询 −

mysql> update UpdateValueIncrementally set ProductId = (select @incrementValue := @incrementValue + @incrementValue);
Query OK, 5 rows affected (0.21 sec)
Rows matched: 5 Changed: 5 Warnings: 0

在上述查询中,我用 @incrementValue 的当前值对该值进行了递增。现在,你可以检查值是否已更新 −

mysql> select *from UpdateValueIncrementally ;

以下是输出 −

+-----------+
| ProductId |
+-----------+
|     66666 |
|    133332 |
|    266664 |
|    533328 |
|   1066656 |
+-----------+
5 rows in set (0.00 sec)

更新于: 30-Jul-2019

1K+ 浏览

开启你的 职业生涯

完成课程即可获得认证

开始
广告