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

อัปเดตคอลัมน์ A หากเป็นโมฆะ มิฉะนั้นให้อัปเดตคอลัมน์ B มิฉะนั้น หากทั้งสองคอลัมน์ไม่เป็นค่าว่าง ให้ดำเนินการใดๆ กับ MySQL


สำหรับสิ่งนี้ ให้ใช้ IF() พร้อมคุณสมบัติ IS NULL ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1976 ( FirstName varchar(20), LastName varchar(20) );Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1976 ('John','Doe');Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1976 ('John', NULL); Query OK, 1 แถวได้รับผลกระทบ ( 0.00 วินาที) mysql> แทรกลงในค่า DemoTable1976 (NULL, 'Miller'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1976 ('Chris', 'Brown'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.00 วินาที)

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

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

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

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | โด || จอห์น | NULL || NULL | มิลเลอร์ || คริส | สีน้ำตาล |+-----------+----------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่ออัปเดตคอลัมน์ถ้าเป็นโมฆะอื่นอัปเดตคอลัมน์อับเรณู มิฉะนั้นหากทั้งสองคอลัมน์ไม่เป็นโมฆะไม่ทำอะไรเลย -

mysql> อัปเดต DemoTable1976 ตั้งค่า FirstName=if(FirstName IS NULL,'David',FirstName), LastName=if(LastName IS NULL,'Brown',LastName);Query OK, 2แถวที่ได้รับผลกระทบ (0.00 วินาที)แถวที่ตรงกัน :4 เปลี่ยนแล้ว:2 คำเตือน:0

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

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

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

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | โด || จอห์น | สีน้ำตาล || เดวิด | มิลเลอร์ || คริส | สีน้ำตาล |+-----------+----------+4 แถวในชุด (0.00 วินาที)