项目开发中查询数据时,需要合并相同的数据,但是字段为null,所以没有合并。建表并添加数据createtablet_student(`id`intnotnullprimarykeyauto_increment,`name`varchar(32),`age`int)insertintot_student(`name`,age)values("aa",11);insertintot_student(`name`,age)values('bb',12);insertintot_student(`name`,age)values('cc',13);insertintot_student(`name`,age)values('cc',14);插入t_student(`name`,age)values('cc',15);插入t_student(`name`,age)values(null,16);插入t_student(`name`,年龄)值(空,17);查询数据中有7条数据select*fromt_student结果:然后做namemergeselect*fromt_studentgroupbyname结果:结果将所有的null合并在一起。解决方案请参阅https://stackoverflow.com/questions/4588935/group-by-do-not-group-null中使用替换UUID()的方法。在做分组的时候,如果name为null,则将null设置为一个随机值UUID(),这样就避免了null会被合并的情况。使用UUID():select*fromt_studentgroupbyIFNULL(name,UUID())结果:
