💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # ifnull IFNULL(expr1,expr2) 如果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 ~~~ # if IF(expr1,expr2,expr3) <>不等于 如果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 ~~~ # isnull ISNULL(expr) 的用法 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。 ~~~ mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 ~~~ 使用= 的null 值对比通常是错误的。 # nullif 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 ~~~ 如果参数不相等,则 MySQL 两次求得的值为 expr1。