如何在 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+ 瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.