记录:MySql中 【GROUP_CONCAT和COALESCE】方法的使用

55 阅读2分钟

前言

情况是这样的:公司系统要求加入一个新的需求,设备的批量验收。

以前单个设备验收的时候,验收页面显示的数据都是单个显示出来的,比如设备编号等信息

image.png

批量验收由于有多个设备,信息显示也是多条(这里前端妹子显示处理的很烂,直接将数据贴上去了)

image.png

因此,由于前端妹子说不大好处理多个数据,所以这块显示还是调的后端接口获取的数据

处理方式

目前能想到的方法就是,将数据从数据库里查出来,后端进行赋值返回给前端。这里查询数据的时候便是用到了"GROUP_CONCAT" 函数将数据进行合并,合并后得到的数据便是根据 "," 进行分割显示的一行字符串

image.png

image.png

但是接口写好之后,前端妹子要求将字符串转换为list发给返回(这个其实她自己就可以在前端处理的,唉......)。因此,需要将"GROUP_CONCAT"合并后的数据根据字符串进行分割处理,然后在返回给前端。

image.png

就在这里分割的时候,因为合并后的数据为NULL,所以进行分割处理时导致后台报错。所以需要使用 "COALESCE" 对每个需要进行合并的字段进行判 NULL 处理

image.png

"COALESCE" 的原理就是,如果此字段为NULL,就使用默认值返回,我这里采用返回空字符串即可 ' ',这样需求就算是彻底搞完了。

结尾

当然,由于经验和能力有限,虽然我认为这样的处理办法不算是什么好办法,因为每次查询出数据,再根据查询数据进行数据处理的过程是很耗时间的。但是又没有想到其他更好的办法,就只能先搁置了,如果有大佬知道怎么处理恳求大佬评论留言帮助一下可可怜的孩子。