select t.id,GROUP_CONCAT(t.name SEPARATOR ',') from t group by t.id
注意 GROUP_CONCAT 中只有一个参数,是一个完整字符串。
假如要在分组中根据某个条件进行过滤,比如原表
ID
|
NAME
|
AGE
|
1
|
张三
|
18
|
1
|
李四
|
25
|
1
|
王五
|
28
|
2
|
小六
|
18
|
2
|
小七
|
22
|
要得到以下结果:
ID
|
<20的NAME
|
>20的NAME
|
1
|
张三
|
李四,王五
|
2
|
小六
|
小七
|
select
t.id,
GROUP_CONCAT(CASE WHEN t.age < 20 THEN t.name END SEPARATOR ',' ) ,
GROUP_CONCAT(CASE WHEN t.age > 20 THEN t.name END SEPARATOR ',' )
from t
group by t.id
有这么个表ID NAME 1 张三 1 李四 2 王五 2 小六 要得到以下结果:ID NAME 1 张三,李四 2 王五,小六 SQL:select t.id,GROUP_CONCAT(t.name SEPARATOR ',') from t group by t.id注意GROUP_CONCA...
在
MySQL
中,可以使用GROUP_CONCAT函数将多行数据
合并
成
一行
数据。在查询语句中,使用GROUP BY子句来指定要
分组
的列,然后使用GROUP_CONCAT函数来
合并
指定列的
值
。例如,以下是一个示例查询语句:
SELECT column1, GROUP_CONCAT(column2 SEPARATOR ',') AS merged_column
FROM table_name
GROUP BY column1
其中,column1是要
分组
的列,column2是要
合并
的列,table_name是表名。在以上查询中,GROUP_CONCAT函数将column2的
值
按逗号分隔
合并
成
一行
,并使用AS关键字指定
合并
后的列名为merged_column。
请注意,GROUP_CONCAT函数默认使用逗号作为分隔符,如果需要使用其他分隔符,可以在GROUP_CONCAT函数中使用SEPARATOR参数来指定。另外,如果需要对结果进行排序,可以在查询语句中使用ORDER BY子句。
希望这个解答对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [
mysql
中将多行数据
合并
成
一行
数据](https://blog.csdn.net/gys9895/article/details/131418571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]