您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

bubuko 2022/1/25 19:58:57 mysql 字数 2064 阅读 629 来源 http://www.bubuko.com/infolist-5-1.html

应用场景 在自定义表单时采用自定义表名-自定义表字段-具体内容来实现,这就需要对数据表进行处理 数据项设计思路及处理: 数据项数据库设计采用数据唯一标识表-对应-数据表来实现 数据项唯一标识表: 数据项具体内容表: 由此会产生一个问题那就是一对多,同一个UNkId(数据唯一标识)下会有多个数据项,相 ...

应用场景

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

数据项设计思路及处理:

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

数据项唯一标识表:

技术分享图片

 

数据项具体内容表:

技术分享图片

 

 由此会产生一个问题那就是一对多,同一个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

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

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


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶