MySQL อัปเดตแบบสอบถามพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
MySQL คำสั่ง UPDATE ใช้สำหรับแก้ไขแถวที่มีอยู่แล้วในตาราง โดยเปลี่ยนฟิลด์เดียวหรือหลายฟิลด์ในคำสั่งเดียว เอกสารนี้จะอธิบายไวยากรณ์ของคำสั่ง UPDATE การกรองด้วยเงื่อนไข WHERE ตัวอย่างการใช้งานกับตารางสมาชิก และมาตรการป้องกันการอัปเดตข้อมูลจำนวนมากโดยไม่ตั้งใจ
แบบสอบถาม UPDATE คืออะไร?
การขอ อัพเดท MySQL คำสั่ง UPDATE ใช้สำหรับแก้ไขแถวในตาราง คำสั่ง UPDATE สามารถเปลี่ยนแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ นอกจากนี้ยังสามารถใช้เพื่ออัปเดตข้อมูลในตารางได้อีกด้วย MySQL ตารางที่มีค่าดึงมาจากตารางอื่น
เหตุใดจึงใช้คำสั่ง UPDATE ใน MySQL?
ข้อมูลมักจะไม่ถูกต้องตลอดไป สมาชิกอาจเปลี่ยนหมายเลขโทรศัพท์ ราคาอาจเปลี่ยนแปลง และคำสั่งซื้ออาจเปลี่ยนสถานะจากรอดำเนินการเป็นจัดส่งแล้ว การลบแถวเก่าและแทรกแถวใหม่เข้าไปจะทำให้คีย์หลักและคีย์รองที่เกี่ยวข้องเสียหาย คำสั่ง UPDATE จะแก้ไขแถวในตำแหน่งเดิม ดังนั้นข้อมูลประจำตัวและความสัมพันธ์จึงยังคงอยู่แม้จะมีการเปลี่ยนแปลง
คำสั่ง UPDATE เป็นเครื่องมือที่เหมาะสมในทุกกรณี:
- ค่าที่แสดงไม่ถูกต้องหรือล้าสมัย: แก้ไขชื่อที่สะกดผิดหรืออัปเดตหมายเลขติดต่อโดยไม่ต้องแก้ไขข้อมูลส่วนที่เหลือ
- สถานะต้องมีการเปลี่ยนแปลงไปข้างหน้า: เปลี่ยนสถานะคำสั่งซื้อจาก “รอดำเนินการ” เป็น “จัดส่งแล้ว” โดยการแก้ไขคอลัมน์เดียว
- หลายสาขาเปลี่ยนแปลงไปพร้อมกัน: คำสั่งเดียวสามารถกำหนดทั้งชื่อใหม่และที่อยู่ใหม่ได้ในขั้นตอนเดียวกัน
- จำเป็นต้องมีการแก้ไขครั้งใหญ่: เงื่อนไข WHERE ที่ตรงกับหลายแถวจะใช้การแก้ไขเดียวกันกับทุกแถวพร้อมกัน
เนื่องจากคำสั่ง UPDATE ที่ไม่มีเงื่อนไข WHERE จะเขียนทับทุกแถว ตัวกรองจึงช่วยแยกการแก้ไขตามปกติออกจากการเขียนทับโดยไม่ได้ตั้งใจ
MySQL อัปเดตไวยากรณ์คำสั่ง
เมื่อกำหนดวัตถุประสงค์แล้ว ขั้นตอนต่อไปคือไวยากรณ์ รูปแบบพื้นฐานของคำสั่ง UPDATE คือ MySQL แสดงอยู่ด้านล่าง
UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition];
ที่นี่:
- อัปเดต `table_name` เป็นคำสั่งที่บอก MySQL เพื่อแก้ไขข้อมูลในตาราง
- SET `column_name` = 'new_value' ระบุชื่อและค่าของฟิลด์ที่จะได้รับผลกระทบจากคำสั่ง UPDATE เมื่อกำหนดค่า ข้อมูลประเภทสตริงต้องอยู่ในเครื่องหมายอัญประกาศเดี่ยว ค่าตัวเลขไม่จำเป็นต้องมีเครื่องหมายอัญประกาศ ค่าวันที่ต้องอยู่ในเครื่องหมายอัญประกาศเดี่ยวและอยู่ในรูปแบบ 'YYYY-MM-DD'
- [เงื่อนไขอยู่ที่ไหน] เป็นตัวเลือกเสริม และสามารถใช้เพื่อกรองจำนวนแถวที่ได้รับผลกระทบจากคำสั่ง UPDATE รายการตัวเลือกทั้งหมดปรากฏอยู่ใน MySQL คู่มือคำสั่งอัปเดต.
ต่อไปนี้เราจะมาดูตัวอย่างการใช้งานจริงที่แสดงการอัปเดตข้อมูลในตารางสมาชิกกัน
อัปเดตใน MySQL ตัวอย่าง
สมมติว่าสมาชิกที่มีหมายเลขสมาชิก 1 และ 2 ต้องทำการอัปเดตข้อมูลในบันทึกของตนดังต่อไปนี้
| หมายเลขสมาชิก | จำเป็นต้องมีการอัปเดต |
|---|---|
| 1 | เปลี่ยนหมายเลขติดต่อจาก 999 เป็น 0759 253 532 |
| 2 | เปลี่ยนชื่อเป็น Janet Smith Jones และอัปเดตที่อยู่เป็น Melrose 123 |
อัปเดตคอลัมน์เดียว
เราเริ่มจากหมายเลขสมาชิก 1 ก่อนทำการเปลี่ยนแปลงใดๆ โปรดดึงข้อมูลบันทึกนั้นมาก่อน
SELECT * FROM `members` WHERE `membership_number` = 1;
เมื่อดำเนินการสคริปต์ข้างต้นจะให้ผลลัพธ์ดังต่อไปนี้
| หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ทางกายภาพ_ที่อยู่ | ที่อยู่ไปรษณีย์ | หมายเลขติดต่อ | อีเมล |
|---|---|---|---|---|---|---|---|
| 1 | เจเน็ต โจนส์ | หญิง | 21-07-1980 | ถนนสายแรก แปลงที่ 4 | กระเป๋าส่วนตัว | 999 | janetjones@yagoo.cm |
ตอนนี้เรามาอัปเดตหมายเลขติดต่อโดยใช้สคริปต์ที่แสดงด้านล่าง
UPDATE `members` SET `contact_number` = '0759 253 532' WHERE `membership_number` = 1;
การเรียกใช้สคริปต์ข้างต้นจะเปลี่ยนหมายเลขติดต่อจาก 999 เป็น 0759 253 532 สำหรับหมายเลขสมาชิก 1 การเรียกใช้คำสั่ง SELECT อีกครั้งจะยืนยันค่าใหม่
| หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ทางกายภาพ_ที่อยู่ | ที่อยู่ไปรษณีย์ | หมายเลขติดต่อ | อีเมล |
|---|---|---|---|---|---|---|---|
| 1 | เจเน็ต โจนส์ | หญิง | 21-07-1980 | ถนนสายแรก แปลงที่ 4 | กระเป๋าส่วนตัว | 0759 253 532 | janetjones@yagoo.cm |
อัปเดตหลายคอลัมน์
หมายเลขสมาชิก 2 จำเป็นต้องแก้ไขข้อมูลสองช่องพร้อมกัน นี่คือข้อมูลก่อนการอัปเดต
| หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ทางกายภาพ_ที่อยู่ | ที่อยู่ไปรษณีย์ | หมายเลขติดต่อ | อีเมล |
|---|---|---|---|---|---|---|---|
| 2 | สมิธ โจนส์ | หญิง | 23-06-1980 | ถนนพาร์ค | NULL | NULL | jj@fstreet.com |
สคริปต์ต่อไปนี้จะอัปเดตทั้งสองคอลัมน์ในคำสั่งเดียว โปรดสังเกตเครื่องหมายจุลภาคที่คั่นระหว่างการกำหนดค่าทั้งสอง
UPDATE `members` SET `full_names` = 'Janet Smith Jones', `physical_address` = 'Melrose 123' WHERE `membership_number` = 2;
การเรียกใช้สคริปต์ข้างต้นจะอัปเดตชื่อเต็มของสมาชิกหมายเลข 2 เป็น Janet Smith Jones และที่อยู่เป็น Melrose 123
| หมายเลขสมาชิก | full_names | เพศ | วันเกิด | ทางกายภาพ_ที่อยู่ | ที่อยู่ไปรษณีย์ | หมายเลขติดต่อ | อีเมล |
|---|---|---|---|---|---|---|---|
| 2 | เจเน็ต สมิธ โจนส์ | หญิง | 23-06-1980 | เมลโรส 123 | NULL | NULL | jj@fstreet.com |
💡 เคล็ดลับ: "WHERE ข้อ" เป็นตัวจำกัดจำนวนแถวที่ได้รับผลกระทบจากคำสั่ง UPDATE หากละเว้นส่วนนี้ ทุกแถวในตารางจะถูกเขียนทับใหม่

