Để 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
SELECTtrước để xem trước dữ liệu sẽ thay đổi