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

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'

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

a9f6263455db32ecdf39837e14e8732f.png

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'

b6651c0f4ec452b10ad45d6358d70b1c.png

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

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

8c7fe44ff1aaf0c52fef840331d1fe76.png

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

处理结果如上图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值