有这样的mysql函数吗?就是group by 之后,将多行串联成一行的比方cmp_id为1的有98条记录 name1、name2、name3、、、name98,group by cmp_id之后,就变成了一行记录 1 'name1-name2-name3-......-name98'呢?类似cmp_id为1的记录有几万条,我们需要group by cmp_id将之变成几百条记录,处理流程跟示例中cmp_id=1的规则一模一样的。

解决方案 »

  1.   

    select cmp_id,group_concat(name) from tt group by cmp_id
      

  2.   

    SELECT cmp_id,GROUP_CONCAT(NAME SEPARATOR '-') FROM tabname GROUP BY cmp_id
      

  3.   

    SELECT cmp_id,GROUP_CONCAT(NAME SEPARATOR '-') FROM tabname GROUP BY cmp_id
      

  4.   

    group_concat就行了。 参考二楼 mr_mablevi(Mablevi)  的解法。
      

  5.   

    or
    SELECT cmp_id,GROUP_CONCAT(NAME order by name SEPARATOR '-' ) FROM tabname GROUP BY cmp_id
      

  6.   

     三楼这应该是直接CTRL+C CTRL+V 二楼的吧。