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

แทนที่ 0 ด้วยค่า null ใน MySQL หรือไม่


คุณสามารถใช้ NULLIF() จาก MySQL เพื่อแทนที่ 0 ด้วย NULL ไวยากรณ์มีดังนี้ −

เลือก *,NULLIF(yourColumnName,0) เป็น anyVariableName จาก yourTableName;

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

mysql> สร้างตาราง Replace0WithNULLDemo -> ( -> Id int ไม่ใช่ NULL auto_increment, -> Name varchar(20), -> Marks int, -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ ( 0.53 วินาที)

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

mysql> แทรกลงในค่า Replace0WithNULLDemo(Name,Marks)('John',76);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน Replace0WithNULLDemo(Name,Marks) values('Carol',86);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงใน Replace0WithNULLDemo (ชื่อเครื่องหมาย) ค่า ('Sam',0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงใน Replace0WithNULLDemo (ชื่อ, เครื่องหมาย) values('Mike',0);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน Replace0WithNULLDemo(Name,Marks) values('Larry',98); Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า Replace0WithNULLDemo(Name,Marks)('Bob',0);Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-------+-------+| รหัส | ชื่อ | เครื่องหมาย |+----+-------+-------+| 1 | จอห์น | 76 || 2 | แครอล | 86 || 3 | แซม | 0 || 4 | ไมค์ | 0 || 5 | แลร์รี่ | 98 || 6 | บ๊อบ | 0 |+----+-------+-------+6 แถวในชุด (0.00 วินาที)

ให้เราแทนที่ 0 ด้วย NULL แบบสอบถามมีดังต่อไปนี้ −

mysql> เลือก *,NULLIF(Marks,0) เป็น ReplaceZeroWithNULL จาก Replace0WithNULLDemo;

ต่อไปนี้เป็นผลลัพธ์ที่แสดงคอลัมน์ใหม่ซึ่งใหม่ได้แทนที่ 0 ด้วย NULL -

<ก่อนหน้า>+----+-------+-------+---------------------+| รหัส | ชื่อ | มาร์ค | ReplaceZeroWithNULL |+----+-------+-------+---------------------+| 1 | จอห์น | 76 | 76 || 2 | แครอล | 86 | 86 || 3 | แซม | 0 | NULL || 4 | ไมค์ | 0 | NULL || 5 | แลร์รี่ | 98 | 98 || 6 | บ๊อบ | 0 | NULL |+----+-------+-------+---------------------+6 แถวในชุด (0.00 วินาที)