问题
I have a single MySQL database:
-------------------------------------------------------------------
Email | Name | Tag
-------------------------------------------------------------------
test@test.com |Test Person | TagOne
test@test.com |Test Person | Tag Two
-------------------------------------------------------------------
Need an SQL query that will return
-------------------------------------------------------------------
Email | Name | Tag
-------------------------------------------------------------------
test@test.com |Test Person | TagOne, Tag Two
-------------------------------------------------------------------
How can I do this?
回答1:
Use:
SELECT t.email,
t.name,
GROUP_CONCAT(DISTINCT t.tag ORDER BY t.tag SEPARATOR ', ')
FROM YOUR_TABLE t
GROUP BY t.email, t.name
Reference:
- GROUP_CONCAT
回答2:
For anyone else trying to do this and is stuck:
SELECT Email, Name, GROUP_CONCAT(Tag ORDER BY Tag ASC SEPARATOR ', ')
FROM Table
GROUP BY Email
来源:https://stackoverflow.com/questions/2845444/sql-select-query-to-merge-rows