MySQL文本分组

标签 mysql

假设我有下表:

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/

相关文章:

mysql - 如何使用 MySQL 命令行更改事件 WordPress 主题?

php - 获取与其他用户的所有对话之间的最新消息

mysql - Linux:MySQL:如何在 Linux 中使用安装在 NTFS 上的 mysql 数据库作为 mysql 数据库?

mysql - 卸载 MAMP 后如何恢复我的网站?

mysql - 多个表上的多对多关系

javascript - JS Node 的 for 和 foreach 循环问题

mysql - 用于从具有不同外键的单个表中检索匹配值对的计数的 SQL 查询?

PHP 从 html 表单获取并将变量回显为 mysql order by

mysql - 序列化关联不生成外键

php - Codeigniter、jQuery 和 Ajax - 数据库更新时显示新信息