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

MySQL UPDATE โดยใช้เงื่อนไข IF


ไวยากรณ์ดังต่อไปนี้เพื่อดำเนินการ UPDATE โดยใช้เงื่อนไข IF ใน MySQL -

อัปเดต yourTableName ตั้งค่า yourColumnName =if(yourColumnName =yourOldValue,yourNewValue,yourColumnName);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง updateIfConditionDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20), -> UserAge int -> );Query OK, 0 แถวได้รับผลกระทบ (4 นาที 0.59 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า updateIfConditionDemo (ชื่อผู้ใช้, UserAge) ('Larry', 23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงใน updateIfConditionDemo (ชื่อผู้ใช้ UserAge) ค่า ('Mike', 21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงใน updateIfConditionDemo (ชื่อผู้ใช้ UserAge) ค่า ('Sam', 23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน updateIfConditionDemo (ชื่อผู้ใช้ UserAge) values('David',23);ตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน updateIfConditionDemo(ชื่อผู้ใช้, UserAge) ค่า('Maxwell',23);แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที) 

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก updateIfConditionDemo;

นี่คือผลลัพธ์ -

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 1 | แลร์รี่ | 23 || 2 | ไมค์ | 21 || 3 | แซม | 23 || 4 | เดวิด | 23 || 5 | แม็กซ์เวลล์ | 23 |+---------+----------+---------+5 แถวในชุด (0.00 วินาที)

นี่คือข้อความค้นหาที่จะอัปเดตโดยใช้เงื่อนไข IF -

mysql> อัปเดต updateIfConditionDemo ตั้งค่า UserAge =if(UserAge =23,26,UserAge);Query OK, 4 แถวได้รับผลกระทบ (0.20 วินาที)แถวที่ตรงกัน:5 เปลี่ยน:4 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง UserAge ได้รับการอัปเดตจาก 23 เป็น 26 -

mysql> เลือก *จาก updateIfConditionDemo;

นี่คือผลลัพธ์ -

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 1 | แลร์รี่ | 26 || 2 | ไมค์ | 21 || 3 | แซม | 26 || 4 | เดวิด | 26 || 5 | แม็กซ์เวลล์ | 26 |+---------+----------+---------+5 แถวในชุด (0.00 วินาที)