Xử lý vấn đề NULL trong MySQL 2009-02-09 11:59:39
Vì trong MySQL: 1+NULL = NULL, ví dụ:
mysql> SELECT 1+NULL
+------------------+
+ result: NULL +
+------------------+
Vấn đề này sẽ gặp trong việc tính toán số liệu bằng query
Ví dụ: table: bangdiem: hoten,hk1,hk2
Dữ liệu:
hoten hk1 hk2
A 8 8
B 7 NULL
Điểm cuối năm:
Kết quả:
+------------------+
+ hoten cuoinam +
+ A 8 +
+ B NULL +
+------------------+
Để giải quyết vấn đề này bạn có thể dùng hàm IFNULL(exp1,exp2), hàm này trả về exp1 nếu exp1 không NULL và ngược lại thì trả về exp2
nên câu query trên có thể đổi lại
Hix, vì cái NULL này mà TG đã tốn gần 1h đồng hồ để fix code, hi vọng bài này giúp ít cho 1 vài anh em gặp phải vấn đề tương tự
mysql> SELECT 1+NULL
+------------------+
+ result: NULL +
+------------------+
Vấn đề này sẽ gặp trong việc tính toán số liệu bằng query
Ví dụ: table: bangdiem: hoten,hk1,hk2
Dữ liệu:
hoten hk1 hk2
A 8 8
B 7 NULL
Điểm cuối năm:
SELECT hoten,(hk1+hk2*2)/3 cuoinam FROM bangdiem
Kết quả:
+------------------+
+ hoten cuoinam +
+ A 8 +
+ B NULL +
+------------------+
Để giải quyết vấn đề này bạn có thể dùng hàm IFNULL(exp1,exp2), hàm này trả về exp1 nếu exp1 không NULL và ngược lại thì trả về exp2
nên câu query trên có thể đổi lại
SELECT hoten,(IFNULL(hk1,0)+IFNULL(hk2,0)*2)/3 cuoinam FROM bangdiem
Hix, vì cái NULL này mà TG đã tốn gần 1h đồng hồ để fix code, hi vọng bài này giúp ít cho 1 vài anh em gặp phải vấn đề tương tự
Tra loi 0 comment(s) 2009-02-09 11:59:39
Y kien