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

คืนค่าจากคอลัมน์แรกถ้าไม่ใช่ NULL มิฉะนั้นคืนค่าจากคอลัมน์ที่สองใน MySQL ด้วย IFNULL()

การใช้ IFNULL() เพื่อเลือกค่าสำรองเมื่อค่าเป็น NULL

ฟังก์ชัน IFNULL(expr1, expr2) ใน MySQL จะคืนค่า expr1 หากไม่ใช่ NULL มิฉะนั้นคืนค่า expr2 ใช้สำหรับจัดการค่า NULL ให้มีค่าแสดงผลแทน

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    FirstName VARCHAR(100),
    LastName VARCHAR(100)
);
Query OK, 0 rows affected (0.62 sec)

mysql> INSERT INTO DemoTable VALUES('John','Doe');
mysql> INSERT INTO DemoTable VALUES(NULL,'Taylor');
mysql> INSERT INTO DemoTable VALUES('David',NULL);
mysql> INSERT INTO DemoTable VALUES(NULL,'Miller');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John      | Doe      |
| NULL      | Taylor   |
| David     | NULL     |
| NULL      | Miller   |
+-----------+----------+
4 rows in set (0.00 sec)

คำสั่งใช้ IFNULL เลือก FirstName ถ้ามี ไม่งั้น LastName

mysql> SELECT IFNULL(FirstName, LastName) AS Result FROM DemoTable;

ผลลัพธ์:

+--------+
| Result |
+--------+
| John   |
| Taylor |
| David  |
| Miller |
+--------+
4 rows in set (0.00 sec)

คำอธิบาย

  • แถว 1: FirstName='John' (ไม่ใช่ NULL) → คืน 'John'
  • แถว 2: FirstName=NULL → คืน LastName='Taylor'
  • แถว 3: FirstName='David' (ไม่ใช่ NULL) → คืน 'David' (แม้ LastName จะเป็น NULL)
  • แถว 4: FirstName=NULL → คืน LastName='Miller'
  • ฟังก์ชันคล้ายกัน: COALESCE(col1, col2, col3, ...) รองรับหลายคอลัมน์