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

ผลลัพธ์ของฟังก์ชัน SUM() ใน MySQL เมื่อส่งคอลัมน์ที่ไม่มีค่าเป็นอาร์กิวเมนต์

SUM() คืนค่า NULL สำหรับคอลัมน์ว่างเปล่า

เมื่อฟังก์ชัน SUM() ของ MySQL ได้รับคอลัมน์ที่ไม่มีค่า (ไม่มีแถวข้อมูล) เป็นอาร์กิวเมนต์ จะคืนค่า NULL แทนที่จะเป็น 0 คอลัมน์สามารถเป็นชนิดข้อมูลใดก็ได้

ตัวอย่าง

ตาราง Social มีโครงสร้างดังนี้:

mysql> Describe Social;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> Select * from Social;
Empty set (0.00 sec)

ทดสอบกับคอลัมน์ตัวเลข (Id):

mysql> Select SUM(id) from Social;
+---------+
| SUM(id) |
+---------+
| NULL    |
+---------+
1 row in set (0.00 sec)

ทดสอบกับคอลัมน์ตัวอักษร (Name):

mysql> Select SUM(Name) from Social;
+-----------+
| SUM(Name) |
+-----------+
| NULL      |
+-----------+
1 row in set (0.00 sec)

ทั้งสองกรณีคืนค่า NULL แม้ชนิดข้อมูลจะต่างกัน