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

ส่งคืน 0 ในคอลัมน์ใหม่เมื่อบันทึกเป็น NULL ใน MySQL?


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง CASE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable703 (ราคา int) ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.46 วินาที)

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

mysql> แทรกลงในค่า DemoTable703 (102) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable703 (null) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable703 ( 0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable703 (500); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable703 (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า DemoTable703 (null) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable703 (2340); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)

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

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

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

<ก่อนหน้า>+-------+| ราคา |+-------+| 102 || NULL || 0 || 500 || 100 || NULL || 2340 |+-------+7 แถวในชุด (0.00 วินาที)

ใช้คำสั่ง CASE -

mysql> เลือกราคา, กรณีเมื่อราคาเป็น NULL จากนั้น 0 อื่นราคาสิ้นสุดตามผลลัพธ์จาก DemoTable703;

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

<ก่อนหน้า>+-------+---------+| ราคา | ผลลัพธ์ |+-------+-------+| 102 | 102 || NULL | 0 || 0 | 0 || 500 | 500 || 100 | 100 || NULL | 0 || 2340 | 2340 |+-------+ --------+7 แถวในชุด (0.00 วินาที)