mysql ifnull不起作用原因分析以及解決
結(jié)論
有記錄且該字段為null,則可以用ifnull轉(zhuǎn)換,如果沒(méi)有記錄,則不能轉(zhuǎn)換(因?yàn)楸旧砭蜎](méi)有記錄)
命令行運(yùn)行的截圖
可以看到:
查一條記錄(id=8,實(shí)際上沒(méi)有id=8的數(shù)據(jù))
- 如果直接查字段(id),則會(huì)返回?zé)o記錄,使用ifnull是沒(méi)有用的,因?yàn)閷?shí)際上本身就沒(méi)有記錄
- 如果查sum(id),雖然返回結(jié)果是null,但這確是真實(shí)存在的記錄,使用infull可以對(duì)null結(jié)果進(jìn)行轉(zhuǎn)換
提示:
使用navicat等工具時(shí),無(wú)記錄和null顯示基本是一樣的,這就造成了混淆,可以看右下角(無(wú)記錄、第1條記錄)的區(qū)別
解決方案
返回結(jié)果為單行
ifnull不能轉(zhuǎn)換的解決方案,一般ifnull不能轉(zhuǎn)換就是因?yàn)楸旧硎菬o(wú)記錄,所以可以構(gòu)造出有記錄(該字段為null)的情況,從上面可以看出,一些函數(shù)(count、sum等)可以使無(wú)記錄變成有記錄
舉例(適用返回結(jié)果為單行的情況)
比如,上面的例子,查詢(xún)不到id返回0,像上面的第3條命令那樣查詢(xún),還是沒(méi)記錄,解決方法,可以使用函數(shù)將字段包起來(lái),構(gòu)造出記錄。
返回結(jié)果為單行單列
舉例(適用返回結(jié)果為單行單列的情況)
如果能夠保證返回結(jié)果為單行單列,可以在整體的返回結(jié)果外面包ifnull
最后
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MySQL中空值和NULL的區(qū)別小結(jié)
- MySQL默認(rèn)值(DEFAULT)和非空約束(NOT NULL)的實(shí)現(xiàn)
- MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解
- MySQL語(yǔ)句之條件語(yǔ)句IFNULL和COALESCE的區(qū)別說(shuō)明
- MySQL中的case?when中對(duì)于NULL值判斷的坑及解決
- 檢查MySQL中的列是否為空或Null的常用方法
- mysql?count()函數(shù)不計(jì)算null和空值問(wèn)題
- mysql的case when字段為空,null的問(wèn)題
- mysql?count?為null時(shí),顯示0的問(wèn)題
- MySQL?5.7中NULL與‘?‘空字符值的多維度分析(詳解)
相關(guān)文章
mysql如何對(duì)String類(lèi)型的數(shù)字值排序
這篇文章主要介紹了mysql如何對(duì)String類(lèi)型的數(shù)字值排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08MySQL5.1主從同步出現(xiàn)Relay log read failure錯(cuò)誤解決方法
這篇文章主要介紹了MySQL5.1主從同步出現(xiàn)Relay log read failure錯(cuò)誤解決方法,需要的朋友可以參考下2014-07-07MySQL索引優(yōu)化之分頁(yè)探索詳細(xì)介紹
大家好,本篇文章主要講的是MySQL索引優(yōu)化之分頁(yè)探索詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別詳解
這篇文章主要給大家介紹了關(guān)于MySql學(xué)習(xí)筆記之事務(wù)隔離級(jí)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05mysql5.7.17在win2008R2的64位系統(tǒng)安裝與配置實(shí)例
本篇文章主要給大家介紹了mysql5.7.17在win2008R2的64位系統(tǒng)安裝與配置實(shí)例,以及在配置過(guò)程中遇到的問(wèn)題解決辦法。2017-11-11mysql查詢(xún)昨天 一周前 一月前 一年前的數(shù)據(jù)
這篇文章主要介紹了mysql查詢(xún)昨天 一周前 一月前 一年前的數(shù)據(jù)的方法,需要的朋友可以參考下2014-05-05Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題
Mysql 經(jīng)常會(huì)遇到語(yǔ)句或者存儲(chǔ)過(guò)程長(zhǎng)時(shí)間沒(méi)有反應(yīng),大概率就是掛掉了,或者死鎖了,這篇文章主要介紹了Mysql關(guān)于進(jìn)程中的死鎖和解除鎖問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07