使用mysql查詢數據庫,當執行left join時,有些關聯的字段內容是NULL,因此獲取記錄集后,需要對NULL的數據進行轉換操作。
本文將提供一種方法,可以在查詢時直接執行轉換處理。使獲取到的記錄集不需要再進行轉換。
mysql提供了IFNULL函數
IFNULL(expr1, expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則返回expr2
實例:
user表結構和數據
+----+-----------+| id | name |+----+-----------+| 1 | Abby || 2 | Daisy || 3 | Christine |+----+-----------+
user_lastlogin表結構和數據
+-----+---------------+| uid | lastlogintime |+-----+---------------+| 1 | 1488188120 || 3 | 1488188131 |+-----+---------------+
查詢user的name與lastlogintime
mysql> select a.id,a.name,b.lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid;
+----+-----------+---------------+| id | name | lastlogintime |+----+-----------+---------------+| 1 | Abby | 1488188120 || 2 | Daisy | NULL || 3 | Christine | 1488188131 |+----+-----------+---------------+
因為id=2的用戶未登入過,所以在user_lastlogin表中沒有記錄。因此lastlogintime為NULL。
使用IFNULL把NULL轉為0
IFNULL(lastlogintime, 0)mysql> select a.id,a.name,IFNULL(b.lastlogintime,0) as lastlogintime from user as a left join user_lastlogin as b on a.id=b.uid;+----+-----------+---------------+| id | name | lastlogintime |+----+-----------+---------------+| 1 | Abby | 1488188120 || 2 | Daisy | 0 || 3 | Christine | 1488188131 |+----+-----------+---------------+
以上這篇mysql 轉換NULL數據方法(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答