假设我有下表:
id | state | type | my_text
--------------------------------------
12345 | OH | 01 | blah
12345 | OH | 01 | testing
12345 | OH | 01 | hello world
12345 | OH | 02 | something else
12345 | OH | 02 | more text
是否存在一个 MySQL 分组函数可以让我输出这样的东西?:
id | state | type | my_text
--------------------------------------
12345 | OH | 01 | blah|testing|hello world
12345 | OH | 02 | something else|more text
我知道处理数字的类似函数(即计算一组分组行的平均值),但我正在寻找将文本字段组合在一起并分隔它们的东西。这看起来相当简单,但我似乎找不到合适的方法来做到这一点。
感谢您的任何建议!
最佳答案
GROUP_CONCAT
可以做到这一点,参见http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
SELECT id, state, type, GROUP_CONCAT(my_text SEPARATOR '|')
FROM tbl
GROUP BY id, state, type
关于MySQL文本分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901742/