Sql将多个记录合并到一个记录中

时间:2013-05-21 11:17:07

标签: mysql sql

我的表有两列user_id和tags。

  user_id    tags
    1    <tag1><tag4>
    1    <tag1><tag2>
    1    <tag3><tag2>
    2    <tag1><tag2>
    2    <tag4><tag5>
    3    <tag4><tag1>
    3    <tag4><tag1>
    4    <tag1><tag2>

我想将这两条记录合并为一条记录。

  user_id    tags
    1    tag1, tag2, tag3, tag4
    2    tags, tag2, tag4, tag5
    3    tag4, tag1
    4    tag1, tag2

我怎么能得到这个?谁能帮我吗。 还需要将tags字段转换为array []。 我对典型的sql commads知之甚少。我只知道基础知识。我是铁杆上的红宝石。

3 个答案:

答案 0 :(得分:1)

您应该查看mysql中的GROUP_CONCAT函数。 A good example is here

在你的情况下,它会是这样的:

SELECT user_id, GROUP_CONCAT(tags) FROM tablename GROUP BY user_id

答案 1 :(得分:1)

答案 2 :(得分:0)

试试这个 - :

  

SELECT t2.userid,
     东西((
      SELECT','+ t1.tags
      FROM table_name为t1
      其中t1.userid = t2.userid
      FOR XML PATH('')
      ),1,2,'')
  FROM table_name为t2
  GROUP BY t2.userid

我希望这可以帮助你。

检查示例 - : http://www.sqlfiddle.com/#!3/85c89/6