使用mysql查詢數(shù)據(jù)庫,當(dāng)執(zhí)行l(wèi)eft join時(shí),有些關(guān)聯(lián)的字段內(nèi)容是NULL,因此獲取記錄集后,需要對(duì)NULL的數(shù)據(jù)進(jìn)行轉(zhuǎn)換操作。
本文將提供一種方法,可以在查詢時(shí)直接執(zhí)行轉(zhuǎn)換處理。使獲取到的記錄集不需要再進(jìn)行轉(zhuǎn)換。
mysql提供了IFNULL函數(shù)
IFNULL(expr1, expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則返回expr2
實(shí)例:
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 |+----+-----------+---------------+ |
因?yàn)閕d=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ù)方法(必看)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持錯(cuò)新站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選