欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql将多条数据合并成一条(group_concat)

程序员文章站 2022-03-06 16:05:45
...

分为文章表(article)以及评论表(comments)。下面以文章id=1(artId=1)为例。
文章表(article)结构和内容如下:
mysql将多条数据合并成一条(group_concat)
评论表(comments)结构和内容如下:
mysql将多条数据合并成一条(group_concat)
将评论表中的对应文章Id的评论内容合并成为一个字段

select a.artId,a.artTitle,group_concat(c.commContent) cContent
from article a left join comments c
on a.artId = c.artId
group by a.artId

结果如下:(以文章id=1(artId=1)为例)
mysql将多条数据合并成一条(group_concat)
如果报下图错误sql_mode=ONLY_FULL_GROUP_BY
mysql将多条数据合并成一条(group_concat)
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
查询sqlmodel如下:

select @@sql_mode

解决方案:
1.暂时性关闭:

set sql_mode=' ' -- 改变已经存在的数据库sql_mode
set @@global.sql_mode=' ' -- 改变全局配置sql_mode
-- 以上配置在重启服务以后失效

2.更改配置文件

更改安装目录下的my.ini文件(如果Mysql 没有这个文件,就把my-default.ini 改成my.ini)
在 [mysqld]和[mysql]下添加

sql_mode =‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
相关标签: 笔记