Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL tăng giá trị một cột

Tạo bảng demo

mysql> create table DemoTable (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(100),
    -> Score int
    -> );
Query OK, 0 rows affected (0.78 sec)

Chèn dữ liệu

mysql> insert into DemoTable(Name, Score) values('John', 68);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable(Name, Score) values('Carol', 98);
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable(Name, Score) values('David', 89);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(Name, Score) values('Robert', 67);
Query OK, 1 row affected (0.14 sec)

Hiển thị dữ liệu gốc

mysql> select * from DemoTable;

Kết quả

+----+--------+-------+
| Id | Name   | Score |
+----+--------+-------+
| 1  | John   | 68    |
| 2  | Carol  | 98    |
| 3  | David  | 89    |
| 4  | Robert | 67    |
+----+--------+-------+
4 rows in set (0.00 sec)

Tăng Score lên 1 cho Id = 3

mysql> update DemoTable set Score = Score + 1 where Id = 3;
Query OK, 1 row affected (0.22 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Kiểm tra kết quả - David từ 89 thành 90

mysql> select * from DemoTable;

Kết quả

+----+--------+-------+
| Id | Name   | Score |
+----+--------+-------+
| 1  | John   | 68    |
| 2  | Carol  | 98    |
| 3  | David  | 90    |
| 4  | Robert | 67    |
+----+--------+-------+
4 rows in set (0.00 sec)

Các biến thể:

  • Tăng tất cả: UPDATE DemoTable SET Score = Score + 1;
  • Tăng có điều kiện: WHERE Score < 90
  • Tăng theo phần trăm: SET Score = Score * 1.1
  • Sử dụng CASE để tăng khác nhau: SET Score = Score + CASE WHEN Score < 50 THEN 10 ELSE 5 END

Lưu ý: Luôn có điều kiện WHERE trừ khi muốn cập nhật toàn bảng.