MySQL的IFNULL解決判空問題

2021-09-07 11:00:31 字數 1397 閱讀 3869

問題:mybatis返回的null型別資料消失,導致前端展示出錯

思路:如果查詢出的結果是空值,應當轉換成空字串。當然在前端也能進行判斷,但要求後台實現這個功能。

解決方案

使用如下方法查詢:

selectifnull(***,'')as *** from user --如果查詢到這個***為null值,那麼就賦值成空字串

不過,如果查詢語句本身為null,那麼返回前端的還是null,這個就要在**裡判斷了。

比如:

select ifnull(***,'') as *** from user where id=100

這條語句本身的返回結果是null,它也就不會執行ifnull函式了,最後的返回結果當然也是null

所以我的方法是在**中增加判斷:

if(anslist == null || anslist.size() == 0)

如果expr1不是null,ifnull()返回expr1,否則它返回expr2。ifnull()返回乙個數字或字串值,取決於它被使用的上下文環境。        

mysql> select ifnull(1,0);    

-> 1    

mysql> select ifnull(0,10);    

-> 0    

mysql> select ifnull(1/0,10);    

-> 10    

mysql> select ifnull(1/0,yes);    

-> yes    

如果expr1是true(expr1<>0且expr1<>null),那麼if()返回expr2,否則它返回expr3。if()返回乙個數字或字串值,取決於它被使用的上下文。        

mysql> select if(1>2,2,3);    

-> 3    

mysql> select if(1<2,yes,no);    

-> yes   

mysql> select if(strcmp(test,test1),yes,no);    

-> no   

expr1作為整數值被計算,它意味著如果你正在測試浮點或字串值,你應該使用乙個比較操作來做。        

mysql> select if(0.1,1,0);    

-> 0    

mysql> select if(0.1<>0,1,0);    

-> 1  

mysql中ifnull的用法

假如expr1不為null,則 ifnull 的返回值為expr1 否則其返回值為 expr2。ifnull 的返回值是數字或是字串,具體情況取決於其所使用的語境。select ifnull 1,0 1 select ifnull null,10 10 select ifnull 1 0,10 10...

MySql的IF和IFNULL函式

mysql的if既可以作為表示式用,也可在儲存過程中作為流程控制語句使用,如下是做為表示式使用 if expr1,expr2,expr3 如果 expr1 是true expr1 0 and expr1 null 則 if 的返回值為expr2 否則返回值則為 expr3。if 的返回值為數字值或字...

MySQL 的IFNULL 函式的作用

在使用left join等聯表查詢時,常遇到某些欄位為null,一般都在後台語言使用if a null 判斷做處理,其實mysql本身也有乙個ifnull函式可以處理。同時我們也來說說isnull 和nullif 函式。一 ifnull expr1,expr2 用法 假如expr1不為null,則 ...