MySQL IFNULL判空问题解决方案
问题:mybatis返回的null类型数据消失,导致前端展示出错
思路:如果查询出的结果是空值,应当转换成空字符串。当然在前端也能进行判断,但要求后台实现这个功能。
解决方案:
使用如下方法查询:
SELECT IFNULL(sex,'') AS sex FROM user --如果查询到这个sex为null值,那么就赋值成空字符串
不过,如果查询语句本身为null,那么返回前端的还是null,这个就要在代码里判断了。
比如:
SELECT IFNULL(sex,'') AS sex FROM user WHERE id=100
这条语句本身的返回结果是null,它也就不会执行IFNULL函数了,最后的返回结果当然也是null
所以我的方法是在代码中增加判断:
if(ansList == null || ansList.size() == 0){...}
MYSQL 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(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 expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。 mysql> select IF(0.1,1,0); -> 0 mysql> select IF(0.1<>0,1,0); -> 1
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
mysql中null(IFNULL,COALESCE和NULLIF)相关知识点总结
本文实例讲述了mysql中null(IFNULL,COALESCE和NULLIF)相关知识点.分享给大家供大家参考,具体如下: 在MySQL中,NULL值表示一个未知值,它不同于0或空字符串'',并且不等于它自身. 我们如果将NULL值与另一个NULL值或任何其他值进行比较,则结果为NULL,因为一个不知道是什么的值(NULL值)与另一个不知道是什么的值(NULL值)比较,其值当然也是一个不知道是什么的值(NULL值). 然而我们通常,使用NULL值来表示数据丢失,未知或不适用的情况. 例如,潜
-
浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
SQL Serve的ISNULL函数: ISNULL(check_expression,replacement_value) 1.check_expression与replacement_value的数据类型必须一致. 2.如果check_expression为NULL,则返回replacement_value. 3.如果check_expression为NULL,则返回check_expression. Mysql的IFNULL函数: IFNULL(expr1,expr2) 如果expr1不是
-
mysql中替代null的IFNULL()与COALESCE()函数详解
在MySQL中isnull()函数不能作为替代null值! 如下: 首先有个名字为business的表: SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2 直接运行就会报错: 错误代码: 1582 Incorrect parameter count in the call to native function 'isnull' 所以,isnull()函数在mysql中就行不
-
浅谈Mysql中类似于nvl()函数的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'); ->
-
MySql中的IFNULL、NULLIF和ISNULL用法详解
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 使用= 的null 值对比通常是错误的. isnull() 函数同 is nul
-
mysql中IFNULL,IF,CASE的区别介绍
假设有一数据表的状态字段设计为varchar类型,有以下值:NULL,pending,pending refund,refund,cancel. 我们知道查询状态为cancel的订单,SQL语句可以这样写:SELECT o.oid,o.moneyreceipt,o.moneyget,o.thecurrency,o.status FROM qorder o WHERE o.status = 'cancel' SQL语句能查询出正确的数据,但是当我们想查询状态为非cancel的订单时,可能会出麻烦,
-
MySQL IFNULL判空问题解决方案
问题:mybatis返回的null类型数据消失,导致前端展示出错 思路:如果查询出的结果是空值,应当转换成空字符串.当然在前端也能进行判断,但要求后台实现这个功能. 解决方案: 使用如下方法查询: SELECT IFNULL(sex,'') AS sex FROM user --如果查询到这个sex为null值,那么就赋值成空字符串 不过,如果查询语句本身为null,那么返回前端的还是null,这个就要在代码里判断了. 比如: SELECT IFNULL(sex,'') AS sex FROM
-
MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法实例
目录 一.按年/月/周/日/小时分组查询(日期时间类型为date或者datetime) 二.MySQL排序 1.排序规则 2.单列排序 三.limit 详细用法 1.用于强制返回指定的记录行数 2.分页 四.ifnull()函数的使用 1.ifnull()的语法 2.ifnull()的使用 总结 一.按年/月/周/日/小时分组查询(日期时间类型为date或者datetime) 在DATE_FORMAT(create_time,'%Y%m%d')中设置需要分组的类型和格式,如下: '%Y%m%d'
-
MySQL ifnull的嵌套使用说明
MySQL ifnull的嵌套使用 在网上查询ifnull有没有嵌套使用的方式,但是貌似没有人提到过这个用法:大都是简单的判断一个字段是否为空,然后用另外一个值代替的方式使用: 即是: select ifnull(a,b) from A ; 但是我遇到的问题是两个字段,大概场景是这样的: 每一个商店会有两种打折方式vip_discount与simple_discount,从数据库查出来以discount字段命名:且以vip_discount为主. 意思是如果vip_discount不为空,就返回
-
微信昵称带符号导致插入MySQL数据库时出错的解决方案
Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节. 因此会导致带有表情的昵称插入数据库时出错. 只要修改MySQL的编码即可,解决方案如下: 1.在mysql的安装目录下找到my.ini,作如下修改: [mysqld] character-set-server=utf8mb4 [mysql] default-character-set=utf8mb4 2 重启mysql服务 3 修改表 ALTER TABLE 表名 CONVERT TO CHARACTER SET
-
在CMD中操作mysql数据库出现中文乱码解决方案
百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 . 其实,只要保证cmd客户端和MySQL两者编码一致即可. 但现实是cmd默认的是gbk(cmd属性可以看到中文操作系统下面是gbk编码),而mySQL一般是utf8(我的也是),之前一直进入误区,想要更改cmd的字符编码,可是并不能行得通.网友中提到在mysql中关于客户端编码问题,只需在cmd里告诉mysql服务器我客户端这边编码和想要的结果集编码即可.
-
Java如何使用Optional与Stream取代if判空逻辑(JDK8以上)
通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作. 注:如果对Java8新特性中的lambda表达式与Stream不熟悉的可以去补一下基础,了解概念. 首先下面代码中的List放入了很多Person对象,其中有的对象是null的,如果不加校验调用Person的getXXX()方法肯定会报空指针错误,一般我们采取的方案就是加上if判断: public class DemoUtils { public static void main(
-
MySQL无法存储emoji表情解决方案分析
本文实例讲述了MySQL无法存储emoji表情解决方案.分享给大家供大家参考,具体如下: 今天学习爬虫爬伯乐在线的文章,由于在文章中有emoji表情,导致有emoji表情的文章都爬取不下来 经过一番搜索之后终于解决了问题. 相关文章可参考: ①. MySQL无法存储Emoji表情问题 ②. mysql存emoji表情报错处理 1. 在navicat中 如果在新建表之前就改变数据库的编码,建表的时候好像可以自己转变过来吧 查看字符集编码: show variables like '%char%';
-
如何在Java中优雅地判空详解
前言 整天都是在跟Java打交道.我在Java开发中最常用的一段代码就是用object != null在使用对象之前判断是否为空.这么做是为了避免NullPointerException.但是我发现这样检测代码实在是太丑了,而且及其不可读. 那有没有一种优雅的替代方法呢? 判空灾难 作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException. 不过NullPointerException对于很多猿们来说,也是Exception家族
-
JDK8新特性之判空遍历写法
在工作中,经常会处理各种变量,但往往会在使用变量的时候,要进行空判断,不然要报错. Java 8 提供了判空写法: Optional.ofNullable(变量).orElse(默认值): 例1:求字符串 s 的长度( 为空的时候返回0 ). 常规写法: String s = getKey(); if (s == null) { return 0; } else { return s.length(); } Java 8 写法: String s = getKey(); return Optio
-
Springboot @Value获取值为空问题解决方案
这篇文章主要介绍了Springboot @Value获取值为空问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在spring中,常常使用 @Value("${property}") 从application.properties中取值,需要注意两点 使用 @Value 的类不能使用 new 关键字进行实例化对象,必须采用 依赖注入的方式进行实例化 不能使用显式的构造方法 否则,将取不到值.解决方法如下: 删除显式的构造方法
随机推荐
- jQuery的text()方法用法分析
- 基于Jquery代码实现支持PC端手机端幻灯片代码
- vue2.0设置proxyTable使用axios进行跨域请求的方法
- oracle学习笔记(三)
- 解析ABP框架中的事务处理和工作单元
- JS去掉字符串前后空格或去掉所有空格的用法
- PHP使用new StdClass()创建空对象的方法分析
- php的mkdir()函数创建文件夹比较安全的权限设置方法
- C# 调用C++写的dll的实现方法
- MyISAM和InnoDB引擎优化分析
- SQL语句中SUM与COUNT的区别深入分析
- Python中实现结构相似的函数调用方法
- 将form表单通过ajax实现无刷新提交的简单实例
- Shell中的${}、##和%%使用范例
- 为数据库生成某个字段充填随机数的存储过程
- mysql存储过程事务管理简析
- jquery+css3打造一款ajax分页插件(自写)
- Meta 标签生成器
- 实例解析JS布尔对象的toString()方法和valueOf()方法
- IIS6 w3wp.exe进程占用cpu和内存过多的解决方法