使用mysql查詢數(shù)據(jù)庫,當執(zhí)行left join時,有些關(guān)聯(lián)的字段內(nèi)容是NULL,因此獲取記錄集后,需要對NULL的數(shù)據(jù)進行轉(zhuǎn)換操作。
本文將提供一種方法,可以在查詢時直接執(zhí)行轉(zhuǎn)換處理。使獲取到的記錄集不需要再進行轉(zhuǎn)換。
mysql提供了IFNULL函數(shù)
IFNULL(expr1, expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則返回expr2
實例:
user表結(jié)構(gòu)和數(shù)據(jù)
+----+-----------+
| id | name |
+----+-----------+
| 1 | Abby |
| 2 | Daisy |
| 3 | Christine |
+----+-----------+
user_lastlogin表結(jié)構(gòu)和數(shù)據(jù)
+-----+---------------+
| 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轉(zhuǎn)為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 轉(zhuǎn)換NULL數(shù)據(jù)方法(必看)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 解析MySQL隱式轉(zhuǎn)換問題
- MySQL的隱式類型轉(zhuǎn)換整理總結(jié)
- MySQL隱式類型的轉(zhuǎn)換陷阱和規(guī)則
- MySQL的時間差函數(shù)(TIMESTAMPDIFF、DATEDIFF)、日期轉(zhuǎn)換計算函數(shù)(date_add、day、date_format、str_to_date)
- 使用python將mysql數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)換為json數(shù)據(jù)的方法
- MySQL常用類型轉(zhuǎn)換函數(shù)總結(jié)(推薦)
- MySQL日期函數(shù)與日期轉(zhuǎn)換格式化函數(shù)大全
- 淺析MySQL顯式類型轉(zhuǎn)換
- 談談MySQL中的隱式轉(zhuǎn)換