mysql中if和ifnull

IF(expr,v1,v2)

  • 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。这里需要注意v1和vi不能是select字句

select t.*,IF(t.task_status=2,NOW()-t.task_running_time,log.elapsed_seconds)  elapsedSeconds from t_deploy_task t left join t_deploy_task_runing_log log on  t.task_running_time=log.task_run_time and t.task_identity=log.task_identity;

上面这句sql,有个elapsedSeconds耗时的字段,分为不同的情况取

IFNULL(v1,v2)

  • 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。

select t.*,IFNULL(IF(t.task_status=2,NOW()-t.task_running_time,log.elapsed_seconds),0)  elapsedSeconds from t_deploy_task t left join t_deploy_task_runing_log log on  t.task_running_time=log.task_run_time and t.task_identity=log.task_identity;

### 回答1: mysqlnullif和ifnull都是MySQL数据库的函数用于处理NULL值,但是它们的作用有所不同。 ifnull函数用于判断参数1是否为NULL,如果是则返回参数2,否则返回参数1。例如,ifnull(null, 'abc')会返回'abc',而ifnull('123', 'abc')会返回'123'。 mysqlnullif函数也能够判断参数1是否为NULL,但它只有在参数1和参数2相等时才会返回NULL。例如,mysqlnullif('abc', 'abc')会返回NULL,而mysqlnullif('abc', '123')会返回'abc'。 ### 回答2: mysqlnullif和ifnull都是MySQL用于处理空值的函数,但它们的作用不同。 ifnull函数的作用是判断一个表达式是否为空值,如果为空值,则返回一个指定的替换值,否则返回该表达式本身的值。例如,ifnull(column_name, 0)表示如果column_name为空,则返回0,否则返回column_name的值。 mysqlnullif函数的作用是比较两个表达式是否相等,如果相等则返回空值,否则返回第一个表达式的值。例如,mysqlnullif(column1, column2)表示如果column1等于column2,则返回空值,否则返回column1的值。 从作用上来看,ifnull用于处理空值的替换,而mysqlnullif则是用于判断两个表达式是否相等,从而决定是否返回空值。因此,ifnullmysqlnullif两个函数虽然都与空值有关,但实际用途是不同的。在使用时需要根据实际的需求来选择相应的函数。 此外,需要指出的是,ifnull函数可以接受多个参数,从左至右依次判断是否为空值,直到找到一个非空值为止,返回该值。如果所有参数都为空值,则返回NULL。而mysqlnullif函数只能接受两个参数。 ### 回答3: mysqlnullif和ifnull都是MySQL用来处理NULL值的函数,但是两者有着不同的作用。 ifnull函数作用是判断参数1是否为NULL,如果是NULL则返回参数2的值,如果不是NULL,则返回参数1的值。 例如,ifnull(NULL,1)将返回1,因为参数1为NULL;而ifnull(2,1)将返回2,因为参数1不为NULL。 而mysqlnullif函数则是比较两个参数是否相等,如果相等则返回NULL,如果不相等则返回第一个参数的值。 例如,mysqlnullif(1,1)将返回NULL,因为两个参数相等;而mysqlnullif(1,2)将返回1,因为两个参数不相等。 因此,ifnull是对单个参数进行判断是否为NULL,而mysqlnullif是用于比较两个参数是否相等并返回NULL或第一个参数的值。它们有不同的用途和作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值