转自: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. ofstream的使用方法--超级精细。C++文件写入、读出函数(转)

    ofstream的使用方法ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;  在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的, ...

  2. 我对android 软件栈了解

    android 软件栈如图所示: Android平台的核心是Linux内核,它负责设备驱动程序.资源访问.电源管理和完成其他操作系统的职责.提供的设备驱动程序包括显示器.照相机,键盘.WiFi.闪存. ...

  3. @class指令的使用

    @class指令能够减少编译时间,告诉编译器“相信我,你最终能了解这个名称的类”,可以减少不得不导入的头文件的数量. sample如下: #import <Foundation/Foundati ...

  4. 调用百度、高德地图App,百度地图网页版,App定位

    https://www.jianshu.com/p/296a3995adc2 https://blog.csdn.net/qq_26598821/article/details/51087785 ht ...

  5. Eclipse QuickSear的插件的说明

    https://spring.io/blog/2013/07/11/eclipse-quick-search Eclipse QuickSear的插件的说明

  6. C++之new、delete 与malloc、free的异同

    在C/C++编程中常常会申请内存.而对内存的申请释放操作有两套方法: new.delete 与malloc.free.他们的使用最好是成对使用,不要去混搭---这可不是时尚界哦. 例如以下是这两组方法 ...

  7. Mysql写入中文出错

    本地调试好像正常,服务器运行报错: UnicodeEncodeError: 'latin-1' codec can't encode character u'\u5206' in position 2 ...

  8. nod32的内网在线更新设置

    需要一个iis地址,最好能够目录浏览,权限够大. 还必须: 增加一个MIME类型,.ver,类型填写application/x-ver

  9. 如何检查显卡类型,DirectX和OpenGL的版本

    How To: Check the graphics card type and OpenGL version From: http://support.esri.com/technical-arti ...

  10. Redis 实现队列http://igeekbar.com/igeekbar/post/436.htm

    场景说明: ·用于处理比较耗时的请求,例如批量发送邮件,如果直接在网页触发执行发送,程序会出现超时 ·高并发场景,当某个时刻请求瞬间增加时,可以把请求写入到队列,后台在去处理这些请求 ·抢购场景,先入 ...