Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để thực hiện Tăng dần trong Cập nhật MySQL?

Để cập nhật các giá trị tăng dần trong MySQL, bạn cần tạo một biến với sự trợ giúp của lệnh SET. Cú pháp để tạo một biến như sau -

set @anyVariableName := 0;

Để cập nhật giá trị, bạn cần sử dụng lệnh UPDATE. Hãy bắt đầu với việc tạo một bảng. Truy vấn tạo bảng -

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

Chèn bản ghi trong bảng với sự trợ giúp của câu lệnh select. Truy vấn như sau -

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)

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh select. Truy vấn như sau -

mysql> select *from UpdateValueIncrementally;

Sau đây là kết quả -

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

Sau đây là truy vấn để cập nhật các giá trị tăng dần -

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

Một biến được tạo ở trên và giá trị được khởi tạo thành 33333. Sau đây là truy vấn để cập nhật các giá trị và tăng dần -

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

Trong truy vấn trên, tôi đã tăng giá trị với giá trị hiện tại là @incrementValue. Bây giờ bạn có thể kiểm tra xem giá trị có được cập nhật hay không -

mysql> select *from UpdateValueIncrementally;

Sau đây là kết quả -

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