• 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

  • 相关阅读:
    重头学习java(4)数组
    java collections读书笔记(1)综述
    重头再学习java(3):数值类型的相互转换
    如何学习java(转)
    c++中的变量做数组长度
    .H和.CPP的作用
    内存操作函数
    HTTP工作原理及HTTP请求、响应报文解读
    bdb_db_open: warning – no DB_CONFIG file found in directory /var/lib/ldap:
    用SWAT图行化配置Samba
  • 原文地址:https://www.cnblogs.com/ggq94/p/12668450.html
Copyright © 2020-2023  润新知