使用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數據方法(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 解析MySQL隱式轉換問題
- MySQL的隱式類型轉換整理總結
- MySQL隱式類型的轉換陷阱和規則
- MySQL的時間差函數(TIMESTAMPDIFF、DATEDIFF)、日期轉換計算函數(date_add、day、date_format、str_to_date)
- 使用python將mysql數據庫的數據轉換為json數據的方法
- MySQL常用類型轉換函數總結(推薦)
- MySQL日期函數與日期轉換格式化函數大全
- 淺析MySQL顯式類型轉換
- 談談MySQL中的隱式轉換