Reputation: 2777
I have table with two columns user_id and 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>
I want to merge this two records into one record like this.
user_id tags
1 tag1, tag2, tag3, tag4
2 tags, tag2, tag4, tag5
3 tag4, tag1
4 tag1, tag2
How can i get this? Can anyone help me out. Also need to convert tags field into array []. I don't have much knowledge on typical sql commads. I just know the basics. I am a ruby on rails guy.
Upvotes: 0
Views: 1779
Reputation: 199
Try this one -:
SELECT t2.userid,
stuff((
SELECT ', ' + t1.tags
FROM table_name as t1
where t1.userid = t2.userid
FOR XML PATH('')
), 1, 2, '')
FROM table_name as t2
GROUP BY t2.userid
I hope this helps you out.
Check the example -: http://www.sqlfiddle.com/#!3/85c89/6
Upvotes: 0
Reputation: 5918
select user_id, group_concat(tags separator ',')
from t
group by user_id
Upvotes: 1
Reputation: 3189
You should look into the GROUP_CONCAT function in mysql.A good example is here
In your case it would be something like:
SELECT user_id, GROUP_CONCAT(tags) FROM tablename GROUP BY user_id
Upvotes: 1