mysql将多条数据合并成一条(group_concat)
程序员文章站
2022-03-06 16:05:45
...
分为文章表(article)以及评论表(comments)。下面以文章id=1(artId=1)为例。
文章表(article)结构和内容如下:
评论表(comments)结构和内容如下:
将评论表中的对应文章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)为例)
如果报下图错误sql_mode=ONLY_FULL_GROUP_BY
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’;
上一篇: 庚子年十月初九——十月十五
下一篇: 别让你的mongodb宕机了