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

Làm cách nào để sao chép dữ liệu từ trường này sang trường khác trên mọi hàng trong MySQL?

Để sao chép dữ liệu từ trường này sang trường khác trên mọi hàng, hãy sử dụng lệnh UPDATE.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   (
   StudentId int,
   StudentFirstName varchar(20),
   StudentMarks int default 0
   );
Query OK, 0 rows affected (0.49 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 DemoTable(StudentId,StudentFirstName) values(89,'Larry');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(StudentId,StudentFirstName) values(35,'Robert');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(StudentId,StudentFirstName) values(48,'Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(StudentId,StudentFirstName) values(78,'David');
Query OK, 1 row affected (0.61 sec)

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

mysql> select *from DemoTable;

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

+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 89        | Larry            | 0            |
| 35        | Robert           | 0            |
| 48        | Chris            | 0            |
| 78        | David            | 0            |
+-----------+------------------+--------------+
4 rows in set (0.00 sec)

Sau đây là truy vấn để sao chép dữ liệu từ trường này sang trường khác trên mỗi hàng. Tại đây, chúng tôi đang sao chép tất cả các giá trị của StudentId sang StudentMarks -

mysql> update DemoTable set StudentMarks=StudentId;
Query OK, 4 rows affected (0.34 sec)
Rows matched: 4 Changed: 4 Warnings: 0

Hãy để chúng tôi hiển thị tất cả các bản ghi từ bảng để kiểm tra tất cả các hàng đã được cập nhật hay chưa -

mysql> select *from DemoTable;

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

+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 89        | Larry            | 89           |
| 35        | Robert           | 35           |
| 48        | Chris            | 48           |
| 78        | David            | 78           |
+-----------+------------------+--------------+
4 rows in set (0.00 sec)