转自:https://www.2cto.com/database/201806/757632.html

1.不使用聚合函数sql:

select * from sys_role_data a

left JOIN sys_office b ON a.office_id = b.id

LEFT JOIN sys_role c on a.role_id = c.id WHERE a.del_flag = '0'

如果没有查出结果,则展示无记录

2.使用 聚合函数, 我使用的是group_concat函数,来将结果部分元素聚合

SELECT

a.id AS "id",

a.kind AS "kind",

a.type AS "type",

a.role_id AS "roleId",

b.name AS "officeName",

c.name AS "roleName",

a.office_id AS "officeId",

group_concat(a.data_id) AS "dataId",

group_concat(a.data_name) AS "dataName",

a.useable AS "useable",

a.del_flag AS "delFlag",

a.remarks AS "remarks",

a.create_date AS "createDate",

a.create_by AS "createBy.id",

a.update_date AS "updateDate",

a.update_by AS "updateBy.id"

FROM sys_role_data a

LEFT JOIN

sys_office b

ON a.office_id = b.id

LEFT JOIN

sys_role c

ON a.role_id = c.id

WHERE a.del_flag = '0'

没有查询到结果,但是却显示第一条记录,共一条,即出现了为Null的结果集。

应用在Mybatis中,返回结果为List时,会出现 List不为空,有一个元素为 all Elements are null.size为1,如果有做分页处理,则也会有问题

出现这种情况,则需要对其返回集进行处理,过滤掉null元素,或者将null元素设置为相应的默认值

1
2
3
4
5
sysRoleData.setPage(page);
List<sysroledata> resultList = sysRoleDataDao.findList(sysRoleData);
resultList.removeAll(Collections.singleton(null));
page.setList(resultList);
page.setCount(resultList.size());</sysroledata>

处理结果如上图所示

关于mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题的解决办法的更多相关文章

  1. Mysql中使用聚合函数对null值的处理

    平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒! 这次让我记忆深刻的一个问题是: 在mysql中使用聚合函数的时候比如avg(t),t ...

  2. MySQL中的聚合函数

    创建student表 CREATE TABLE IF NOT EXISTS `student` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT, `nam ...

  3. Python2爬虫获取的数据存储到MySQL中时报错"Incorrect string value: '\\xE6\\x96\\xB0\\xE9\\x97\\xBB' for column 'new' at row 1"的解决办法

    由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liu ...

  4. 在MongoDB中实现聚合函数 (转)

    随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...

  5. Mysql中常用的函数汇总

    Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...

  6. 在MongoDB中实现聚合函数

    在MongoDB中实现聚合函数 随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加. ...

  7. Mysql中使用find_in_set函数查找字符串

    mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...

  8. mysql中的group_concat函数的用法

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...

  9. SQLServer 中实现类似MySQL中的group_concat函数的功能

    SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...

随机推荐

  1. Javassist 字节码 简介 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. Android -- Dialog动画

    window_in.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android ...

  3. Logistic Regression--逻辑回归算法汇总**

    http://www.cnblogs.com/biyeymyhjob/archive/2012/07/18/2595410.html 转自别处 有很多与此类似的文章  也不知道谁是原创 因原文由少于错 ...

  4. Java 解决 servlet 接收参数中文乱码问题

    方法一: 接收到的参数进行如下操作[不建议]: String tmp = new String(type.getBytes("iso-8859-1"), "utf-8&q ...

  5. RAMPS1.4 3d打印控制板接线与测试2

    http://learn.makerlab.me/guides/1/articles/2 mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega256 ...

  6. CHtmlEditCtrl(1) : Use CHtmlEditCtrl to Create a Simple HTML Editor

    I needed a lightweight HTML editor to generate "rich text" emails, so I decided to explore ...

  7. JAVA对图片的任意角度旋转,以及镜像操作

    package relevantTest;/* * 该代码实现了对图像的水平镜像变换,垂直镜像变换,任意角度旋转,jtf的实时监控,以及对图像的缩放变换,以及按钮的若隐若现效果. * 在对图像进行任意 ...

  8. 【Python】torrentParser1.03

    #------------------------------------------------------------------------------------ # torrentParse ...

  9. 多模块Maven项目如何使用javadoc插件生成文档

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   需求 最近要对一个项目结构如下的Maven项目生成JavaDoc文档. Project                  ...

  10. ArcGIS Engine问答:为什么地理数据库中不能产生同名要素类

    之所以产生这种问题,其原因是不管一个要素类是直接放在工作空问中,还是放在工作空问的一个要素数据集中,这些区别不过逻辑上的,而它们的物理组成都是数据库中的一张二维表,并目表名就是要素类的名字.在一个数据 ...