有这么一个表tb:
+--+----+
|id|name|
+--+----+
|1|小红|
|1|小明|
|2|小张|
|2|小张|
+--+----+
要以id分组,把name字段合并到一行。
使用mysql的group_concat函数很方便的实现:
mysql>select id,group_concat(name) from tb group by id;
+--+--------------------+
|id|group_concat(name)|
+--+--------------------+
|1|小红,小明|
|2|小张,小张|
+--+--------------------+
我在处理完后还要在字段上加item标签放入xml,即:
<item>1</item>
<item>2</item>
<item>小红,小明</item>
<item>小张,小张</item>
用sublime(shift+鼠标右键列选取编辑)或者其他编辑器都可以很方便的处理。
附group_concat的其他用法:
-
合并后用分号分隔:替换group_concat函数为group_concat(name
separator
';')
-
去冗余:group_concat(distinct name)
- 倒序排列:group_concat(name order by name desc)