Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

คัดลอกข้อมูลจากคอลัมน์หนึ่งไปอีกคอลัมน์ทุกแถวใน MySQL ด้วย UPDATE

เมื่อต้องการคัดลอกค่าจากคอลัมน์หนึ่งไปยังอีกคอลัมน์ในทุกแถวของตาราง ให้ใช้คำสั่ง UPDATE พร้อมกำหนดค่าคอลัมน์ปลายทางเท่ากับคอลัมน์ต้นทาง

ตัวอย่างสถานการณ์

คัดลอกค่า StudentId ไปยัง StudentMarks ในทุกแถว

สร้างตารางและข้อมูล

mysql> create table DemoTable (
    StudentId int,
    StudentFirstName varchar(20),
    StudentMarks int default 0
);
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');

คำสั่ง UPDATE คัดลอกข้อมูล

mysql> update DemoTable set StudentMarks = StudentId;

ผลลัพธ์หลังอัปเดต

+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
| 89        | Larry            | 89           |
| 35        | Robert           | 35           |
| 48        | Chris            | 48           |
| 78        | David            | 78           |
+-----------+------------------+--------------+

รูปแบบคำสั่ง

UPDATE ชื่อตาราง SET คอลัมน์ปลายทาง = คอลัมน์ต้นทาง [WHERE เงื่อนไข];

เคล็ดลับและคำเตือน

  • ใช้ WHERE เพื่อจำกัดขอบเขตแถวที่ต้องการอัปเดต (ป้องกันอัปเดตผิด)
  • ทดสอบด้วย SELECT ก่อน: SELECT StudentId, StudentMarks FROM DemoTable;
  • สำรองข้อมูล (BACKUP) ก่อนรัน UPDATE บนข้อมูลจริง
  • สามารถคำนวณระหว่างทางได้: SET col2 = col1 * 1.07 (คำนวณ VAT 7%)
  • คัดลอกหลายคอลัมน์พร้อมกัน: SET col2 = col1, col3 = col1 + 100