使用mysql查詢數據庫,當執行left join時,有些關聯的字段內容是NULL,因此獲取記錄集后,需要對NULL的數據進行轉換操作。
本文將提供一種方法,可以在查詢時直接執行轉換處理。使獲取到的記錄集不需要再進行轉換。
mysql提供了ifnull函數
IFNULL(expr1,?expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則返回expr2
實例:
user表結構和數據
+-----+---------------+|?uid?|?lastlogintime?|
+----+-----------+|?id?|?name??????| +----+-----------+|??1?|?Abby??????| |??2?|?Daisy?????||??3?|?Christine?| +----+-----------+
??
user_lastlogin表結構和數據
+-----+---------------+|???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數據方法 ,更多相關內容請關注php中文網。
相關推薦:
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦