关于mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题的解决办法
转自: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问题的解决办法的更多相关文章
- Mysql中使用聚合函数对null值的处理
平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒! 这次让我记忆深刻的一个问题是: 在mysql中使用聚合函数的时候比如avg(t),t ...
- MySQL中的聚合函数
创建student表 CREATE TABLE IF NOT EXISTS `student` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT, `nam ...
- Python2爬虫获取的数据存储到MySQL中时报错"Incorrect string value: '\\xE6\\x96\\xB0\\xE9\\x97\\xBB' for column 'new' at row 1"的解决办法
由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liu ...
- 在MongoDB中实现聚合函数 (转)
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...
- Mysql中常用的函数汇总
Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...
- 在MongoDB中实现聚合函数
在MongoDB中实现聚合函数 随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加. ...
- Mysql中使用find_in_set函数查找字符串
mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...
- mysql中的group_concat函数的用法
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...
- SQLServer 中实现类似MySQL中的group_concat函数的功能
SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...
随机推荐
- Anciroid的IPC机制-Binder原理
Binder驱动的原理和实现 通过上一节的介绍,大家应该对Binder有了基本的认识了.任何上层应用程序接口和用户操作都需要底层硬件设备驱动的支持,并为其提供各种操作接口.本节首先从Binder的驱动 ...
- UML图中聚合、组合、关联、依赖、泛化的强弱关系
一.泛化 1.说明 泛化是一种继承关系,如果一个类A的所有属性和操作能被另一个类B所继承,则类B不仅可以包含自己独有的属性,而且可以包含类A的属性和操作.继承是类与类或者类与接口之间最常见的关系. 2 ...
- php随机生成汉字实现方法
GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,由中国国家标准总局发布,1981年5月1日实施.GB2312 编码通行于中国大陆:新加坡等地也 ...
- 【应用】R--判断类别型属性之间是否有相关性(相互之间是否独立)
检验某学区所有在售房源中,小区与楼栋类别(低层:多层;小高层:高层)是否相关 导入数据: > house<- read.table("house_data.txt", ...
- String 转化Calendar
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); Date dateExecute = s ...
- Android 多屏适配解决方式
1.主流手机必要測量的參数(通过详细的方法.測量出,须要測试手机的 以下的这些參数,我们主要使用的仅仅是 screenwidth 这个參数,其它參数仅仅是帮助我们更好的理解 屏幕适配) Displa ...
- ASP入门(三)-VBScript变量、运算符
ASP内置了两种语法引擎,分别是VBScript和JScript. VBScript是VB的一个子集.JScript和JavaScript有些类似. 如果你熟悉VB,建议用VBScript,否则推荐使 ...
- maven中的snapshot来源与注意事项
maven中的snapshot来源与注意事项 (2012-04-23 15:37:48) 转载▼ 标签: 杂谈 分类: java maven的依赖管理是基于版本管理的,在maven2之后,把版本管理细 ...
- 提高Mxd地图渲染出图效率的方法
测试 在ArcGIS地图渲染非常耗时,特别是标注较多时,下面是做的一些性能测试 小结 1.地图渲染的数据量是显示出图速度的关键.主要注意: (1)与数据库存储的数据量关系不大.例如数据库有1万条数 ...
- 使用Feign时报错Service id not legal hostname
报错Service id not legal hostname的原因是服务名称不能带有下划线,可以使用中划线