MySql 里的IFNULL、NULLIF和ISNULL用法
今天用到了MySql里的isnull才發(fā)現(xiàn)他和MSSQL里的還是有點(diǎn)區(qū)別,現(xiàn)在簡(jiǎn)單總結(jié)一下:
mysql中isnull,ifnull,nullif的用法如下:
isnull(expr) 的用法:
如expr 為null,那么isnull() 的返回值為 1,否則返回值為 0。?
mysql> select isnull(1+1);
-> 0
mysql> select isnull(1/0);
-> 1
使用= 的null 值對(duì)比通常是錯(cuò)誤的。?
isnull() 函數(shù)同 is null比較操作符具有一些相同的特性。請(qǐng)參見有關(guān)is null 的說明。
IFNULL(expr1,expr2)的用法:
假如expr1?? 不為???NULL,則?? IFNULL()?? 的返回值為?? expr1;?
否則其返回值為?? expr2。IFNULL()的返回值是數(shù)字或是字符串,具體情況取決于其所使用的語境。
mysql>?? SELECT?? IFNULL(1,0);???
????????????????? ->?? 1???
mysql>?? SELECT?? IFNULL(NULL,10);???
?? ->?? 10???
?mysql>?? SELECT?? IFNULL(1/0,10);???
?????????? ->?? 10???
mysql>?? SELECT???
IFNULL(1/0,'yes');???
??????????? ->?? 'yes'??
IFNULL(expr1,expr2)的默認(rèn)結(jié)果值為兩個(gè)表達(dá)式中更加“通用”的一個(gè),順序?yàn)镾TRING、?? REAL或???
INTEGER。假設(shè)一個(gè)基于表達(dá)式的表的情況,???? 或MySQL必須在內(nèi)存儲(chǔ)器中儲(chǔ)存一個(gè)臨時(shí)表中IFNULL()的返回值:???
CREATE?? TABLE?? tmp?? SELECT?? IFNULL(1,'test')?? AS?? test;???
在這個(gè)例子中,測(cè)試列的類型為?? CHAR(4)。??????
NULLIF(expr1,expr2)??的用法:??
如果expr1?
=?? expr2???? 成立,那么返回值為NULL,否則返回值為?? expr1。這和CASE?? WHEN?? expr1?? =?? expr2???
THEN???NULL?? ELSE?? expr1?? END相同。?????
mysql>?? SELECT???
NULLIF(1,1);???
?????????? ->???NULL???
mysql>?? SELECT?? NULLIF(1,2);???
??????????? ->?? 1??
如果參數(shù)不相等,則???MySQL?? 兩次求得的值為???? expr1?? 。
from:?https://www.cnblogs.com/JuneZhang/archive/2010/08/26/1809306.html?
總結(jié)
以上是生活随笔為你收集整理的MySql 里的IFNULL、NULLIF和ISNULL用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程池的使用(线程池重点解析)
- 下一篇: getParameter的用法总结