mysql中ifnull与nullif 函数用法

IFNULL(expr1,expr2)

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

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)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。假设一个基于表达式的表的情况, 或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:

CREATE TABLE tmp SELECT IFNULL(1,’test’) AS test;

在这个例子中,测试列的类型为 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

注意,如果参数不相等,则 MySQL 两次求得的值为 expr1 。

时间: 2024-09-21 04:10:08

mysql中ifnull与nullif 函数用法的相关文章

MySQL中from_unixtime()时间格式化函数用法

函数:FROM_UNIXTIME作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示. 语法:FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化.format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符. 根据format字符串格式化date值. from_unixtime()是MySQL里的时间函数 date为需要处理的参数(该参数是Unix

mysql中ASCII、ORD函数用法详解

一,ASCII(str1) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL 举例: 1.  代码如下 复制代码 mysql> select ascii('hi'); +-----+ | ascii('hi') | +-----+ |         104 | +-----+ 1 row in set 104是h的ASCII值 2.输出b和B的ASCII值  代码如下 复制代码 mysql> SELECT ASCII('b')A

mysql中concat()字符串连接函数用法

CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL.  例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) Mysql查询日期和时间:  代码如下 复制代码 mysql> select concat(CURDATE() , ' ' ,CURTIME()); +------------------------------------+ | concat(CURDATE() ,

MySql中substring字符串截取函数用法

用法: SUBSTRING(str,pos,len) SUBSTRING(str FROM pos FOR len) SUBSTRING(str,pos) SUBSTRING(str FROM pos) 别名SUBSTR 截取字符串str从pos开始长度为len的字符串,如果不设置len参数默认获取pos以后的所有内容 注意字符串的索引是从1开始. 如果pos为负数则从字符串的后面开始截取. 1.截取pos后所有的数据  代码如下 复制代码 mysql> select substring('my

mysql问题:sum相加函数用法

问题描述 mysql问题:sum相加函数用法 原始数据: a b 11 11 25 1 29 5 22 7 45 6 想要达成的效果: a b c d 11 11 11 11 25 1 36 12 29 5 65 17 22 7 87 24 45 6 132 30 Mysql代码怎么写,我知道用sum函数,但是计算的是总和,这里的要求是,第一个和第二个相加,第三个和第一个和第二个相加,我不知道怎么说,看逻辑就知道了,求大神帮忙 解决方案 http://blog.sina.com.cn/s/blo

PHP中addcslashes与stripcslashes函数用法分析_php技巧

本文实例分析了PHP中addcslashes与stripcslashes函数用法.分享给大家供大家参考,具体如下: 在写一个网站的英文版时,写完后填加英文资料,我随便填写时一点问题没有,但每当填加指定的内容时却填加不上,也不报错,我查看了数据库,发现这个字段用的是"TEXT"数据数型,我以为是内容过长的原因,于是我把数据类型改成了"longtext",但提交时发现还是出现同样的问题.下面我们给大家介绍一下addcslashes函数吧! 后来请教同事,同事发现在是英文

MySQL截取和拆分字符串函数用法示例_Mysql

本文实例讲述了MySQL截取和拆分字符串函数用法.分享给大家供大家参考,具体如下: 首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后.SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位. 接着说拆分字符串函数: SUBSTRING_INDEX(commentid, '-', 1) 这个就稍稍复杂一些了,他的意思是以 - 进行拆分字符串,从第一个关键词开始取前面所有的字符串.如果上面的第三个参数修改为 -

Python中threading模块join函数用法实例分析

  本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后join这些线程结束,例如: ? 1 2 3 4 5 6 7 8 9 for i in range(10): t = ThreadTest(i) thread_arr.append(t)   for i in range(10): thread_arr[i].start()   for i in ra

php中sprintf与printf函数用法区别

 这篇文章主要介绍了php中sprintf与printf函数用法区别解析,需要的朋友可以参考下 下面是一个示例:四舍五入保留小数点后两位    代码如下: <?php $num1 = 21; echo sprintf("%0.2f",$num1)."<br />"; //输出 21.00 $num2 = 16.3287; echo sprintf("%0.2f",$num2)."<br />";