如何在 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)
广告