MYSQL同一字段下多列多行合并查询

应用场景

在自定义表单时采用自定义表名-自定义表字段-具体内容来实现,这就需要对数据表进行处理

数据项设计思路及处理:

数据项数据库设计采用数据唯一标识表-对应-数据表来实现

数据项唯一标识表:

数据项具体内容表:

 由此会产生一个问题那就是一对多,同一个UNkId(数据唯一标识)下会有多个数据项,相对于传统面向对象思路来设计对象是不好设置的,

 那么由此就可以用到MYSQL的合并列的命令GROUP_CONCAT,语法为group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),

可以将需要的字段来进行相应的合并:

效果如下(合并字段可以使用concat来进行拼接):

 这样就可以得到一个近似于实体对象的String类型字符串,然后在进行相对应的转译即可获得数据信息。

 想关于group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )的mysql语句:

select GROUP_CONCAT(CONCAT(c.`name`,':',b.`data`) separator ',' ) data  from t_task_unks a
        LEFT JOIN t_task_data_ b on a.unk_id=b.unk_id
        LEFT JOIN t_task_property_ c on c.task_id=a.task_id
        where a.task_id=b.task_id and b.property_id=c.id and a.task_id=1 
        group by a.unk_id

-----------------------------------------------------------分割线-------------------------------------------------------------------

本笔记自用 而已,如有错误请指正!

GGQ

原文地址:https://www.cnblogs.com/ggq94/p/12668450.html