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

อัปเดตฟิลด์ MySQL เท่านั้นหากฟิลด์มีค่า null หรือ 0?


สำหรับสิ่งนี้ ให้ตั้งค่าเงื่อนไขโดยใช้ MySQL IF() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1592 -> ( -> StudentMarks int -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.76 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1592 (56) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable1592 (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1592 ( 98); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable1592 (0) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable1592 (75) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า DemoTable1592 (NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+| StudentMarks |+-------------+| 56 || NULL || 98 || 0 || 75 || NULL |+-------------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะปรับปรุงเฉพาะฟิลด์ถ้ามันมี null หรือ 0 -

mysql> อัปเดต DemoTable1592 set StudentMarks=if(StudentMarks IS NULL or StudentMarks=0,33,StudentMarks);Query OK, 3 แถวได้รับผลกระทบ (0.17 วินาที)แถวที่ตรงกัน:6 เปลี่ยนแล้ว:3 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+| StudentMarks |+-------------+| 56 || 33 || 98 || 33 || 75 || 33 |+--------------+6 แถวในชุด (0.00 วินาที)