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

Cập nhật nhiều hàng trong một cột duy nhất trong MySQL?

Để cập nhật nhiều hàng trong một cột, hãy sử dụng câu lệnh CASE. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table updateMultipleRowsDemo
   -> (
   -> StudentId int,
   -> StudentMathScore int
   -> );
Query OK, 0 rows affected (0.63 sec)

Sau đây là truy vấn để chèn các bản ghi trong bảng bằng cách sử dụng lệnh insert -

mysql> insert into updateMultipleRowsDemo values(10001,67);
Query OK, 1 row affected (0.14 sec)
mysql> insert into updateMultipleRowsDemo values(10002,69);
Query OK, 1 row affected (0.15 sec)
mysql> insert into updateMultipleRowsDemo values(10003,89);
Query OK, 1 row affected (0.14 sec)
mysql> insert into updateMultipleRowsDemo values(10004,99);
Query OK, 1 row affected (0.13 sec)
mysql> insert into updateMultipleRowsDemo values(10005,92);
Query OK, 1 row affected (0.13 sec)

Sau đây là truy vấn để hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select * from updateMultipleRowsDemo;

Điều này sẽ tạo ra kết quả sau -

+-----------+------------------+
| StudentId | StudentMathScore |
+-----------+------------------+
| 10001     | 67               |
| 10002     | 69               |
| 10003     | 89               |
| 10004     | 99               |
| 10005     | 92               |
+-----------+------------------+
5 rows in set (0.00 sec)

Đây là truy vấn để cập nhật nhiều hàng trong một cột duy nhất trong MySQL -

mysql> UPDATE updateMultipleRowsDemo
   -> SET StudentMathScore= CASE StudentId
   -> WHEN 10001 THEN 45
   -> WHEN 10002 THEN 52
   -> WHEN 10003 THEN 67
   -> END
   -> WHERE StudentId BETWEEN 10001 AND 10003;
Query OK, 3 rows affected (0.19 sec)
Rows matched: 3 Changed: 3 Warnings: 0

Hãy để chúng tôi kiểm tra giá trị đã được cập nhật hay chưa -

mysql> select * from updateMultipleRowsDemo;

Điều này sẽ tạo ra kết quả sau

+-----------+------------------+
| StudentId | StudentMathScore |
+-----------+------------------+
| 10001     | 45               |
| 10002     | 52               |
| 10003     | 67               |
| 10004     | 99               |
| 10005     | 92               |
+-----------+------------------+
5 rows in set (0.00 sec)