同意樓上的判斷,可能你的數(shù)據(jù) 的值就是 'null'
創(chuàng)新互聯(lián)是一家專業(yè)提供韓城企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為韓城眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
出現(xiàn)這種情況的可能是,數(shù)據(jù)是從哪兒導(dǎo)入的。畢竟沒有誰 這么無聊, 把'null' 寫入name列。
可以的,有顯式和隱式兩種插入空值方式(前提是該字段未設(shè)置默認值且允許為空)。\x0d\x0a例如 t1(id auto_increment primary key,sname varchar(10) not null, address varchar(100))\x0d\x0a-- 顯式方式向地址字段插入空值\x0d\x0ainsert into t1 (sname,address) valuse('John',null);\x0d\x0a-- 隱式方式向地址字段插入空值\x0d\x0ainsert into t1 (sname) valuse('John');
mybatis返回的null類型數(shù)據(jù)消失,導(dǎo)致前端展示出錯。
如果查詢出的結(jié)果是空值,應(yīng)當(dāng)轉(zhuǎn)換成空字符串。當(dāng)然在前端也能進行判斷,但要求后臺實現(xiàn)這個功能。
解決方案:
使用如下方法查詢:
SELECT?IFNULL(sex,'')?AS sex FROM user?--如果查詢到這個sex為null值,那么就賦值成空字符串不過,如果查詢語句本身為null,那么返回前端的還是null,這個就要在代碼里判斷了。
比如:
SELECT IFNULL(sex,'') AS sex FROM user WHERE id=100
這條語句本身的返回結(jié)果是null,它也就不會執(zhí)行IFNULL函數(shù)了,最后的返回結(jié)果當(dāng)然也是null。所以方法是在代碼中增加判斷:
if(ansList == null || ansList.size() == 0){...}
擴展資料
mySql中IFNULL的使用說明:
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個數(shù)字或字符串值
具體用法如:現(xiàn)有學(xué)生表(tbl_student)和分數(shù)表(score),查詢學(xué)生表的所有字段和學(xué)生相對于的英語成績(english_score)sql如下:
select stu.*,IFNULL(score.english_score,0)?from tbl_student stu,tbl_score score where 1=1 and stu.stu_id=score.stu_id
以上sql中,如果score表中的english_score有值,則IFNULL(score.english_score,0)就顯示english_score,否則,顯示0。
方法/步驟:
1.第一步mysql對null值處理提供了三大操作符,"is null","is not n...
2.第二步下面通過實例來介紹mysql中null值的處理,首先創(chuàng)建一個字段含有空值的u...
3.第三步我們可以通過“select * from user where second i...
4.第四步通過“select * from user where second is n...
5.第五步我們也可以輸入“select * from user where second =...
1)寫入時使用NULL
insert into xxx values (NULL,NULL,NULL)
2)讀取時使用empty()
if(empty(row["col3"])){
//do something.
}
查詢空字符可以用=號,例如:
select * from tbname where field=''
而查詢null 則用is,例如
select * from tbname where field is null
試試看