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

Sao chép dữ liệu từ cột này sang cột khác cho mọi hàng trong MySQL?

Để sao chép dữ liệu từ một cột sang cột khác trên tất cả các hàng, sử dụng lệnh UPDATE với phép gán trực tiếp.

Tạo bảng sinh viên

mysql> CREATE TABLE DemoTable (
    -> StudentId INT,
    -> StudentFirstName VARCHAR(20),
    -> StudentMarks INT DEFAULT 0
    -> );

Chèn dữ liệu (chỉ điền ID và tên)

mysql> INSERT INTO DemoTable(StudentId, StudentFirstName) VALUES(89, 'Larry');
mysql> INSERT INTO DemoTable(StudentId, StudentFirstName) VALUES(35, 'Robert');
mysql> INSERT INTO DemoTable(StudentId, StudentFirstName) VALUES(48, 'Chris');
mysql> INSERT INTO DemoTable(StudentId, StudentFirstName) VALUES(78, 'David');

Xem dữ liệu ban đầu (StudentMarks = 0 mặc định)

mysql> SELECT * FROM DemoTable;
+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 89        | Larry            | 0            |
| 35        | Robert           | 0            |
| 48        | Chris            | 0            |
| 78        | David            | 0            |
+-----------+------------------+--------------+

Sao chép StudentId sang StudentMarks

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

Kiểm tra kết quả

mysql> SELECT * FROM DemoTable;
+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 89        | Larry            | 89           |
| 35        | Robert           | 35           |
| 48        | Chris            | 48           |
| 78        | David            | 78           |
+-----------+------------------+--------------+

Mẹo mở rộng

  • Có thể sao chép giữa các cột khác kiểu dữ liệu (MySQL sẽ tự chuyển đổi nếu có thể)
  • Sử dụng WHERE để chỉ cập nhật một phần hàng
  • Để an toàn, hãy SELECT trước để xem trước dữ liệu sẽ thay đổi