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

MySQL: ตั้งค่าเฉพาะแถวที่เป็น NULL ด้วย IFNULL

การใช้ IFNULL() ใน UPDATE

ฟังก์ชัน IFNULL(expr, alt) คืนค่า alt ถ้า expr เป็น NULL มิฉะนั้นคืน expr เอง

ตัวอย่าง: เปลี่ยน NULL เป็น 0

mysql> create table DemoTable817(Value int);
Query OK, 0 rows affected (0.53 sec)
mysql> insert into DemoTable817 values(10);
mysql> insert into DemoTable817 values(null);
mysql> insert into DemoTable817 values(20);
mysql> insert into DemoTable817 values(null);

คำสั่ง UPDATE

mysql> update DemoTable817 set Value = IFNULL(Value, 0);
Query OK, 2 rows affected (0.17 sec)

ผลลัพธ์:

+-------+
| Value |
+-------+
| 10    |
| 0     |
| 20    |
| 0     |
+-------+

ฟังก์ชันที่เกี่ยวข้อง

  • COALESCE(val1, val2, ..., default) - คืนค่าแรกที่ไม่ใช่ NULL (มาตรฐาน ANSI SQL)
  • NULLIF(expr1, expr2) - คืน NULL ถ้า expr1 = expr2
  • ISNULL(expr) - คืน 1 ถ้า NULL, 0 ถ้าไม่ใช่ (MySQL)

การใช้ใน SELECT (ไม่เปลี่ยนข้อมูล)

SELECT IFNULL(Value, 0) as Value FROM DemoTable817;
SELECT COALESCE(Value, 0) as Value FROM DemoTable817;

สรุป

ใช้ UPDATE table SET col = IFNULL(col, default) เพื่อแทนที่ NULL ทั้งตาราง หรือใช้ใน SELECT เพื่อแสดงค่าแทนโดยไม่แก้ไขข้อมูล