首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql错误行xxxx被GROUP_CONCAT()

Mysql错误行xxxx被GROUP_CONCAT()
EN

Stack Overflow用户
提问于 2017-07-14 18:39:35
回答 2查看 2.3K关注 0票数 1

我有这样的查询:

代码语言:javascript
运行
复制
INSERT INTO products_analysis_cache (products_id, group_styles, group_finishing, group_elements, group_materials, group_watchlist)
  SELECT p.products_id,
    CONCAT(',', GROUP_CONCAT(shp.styles_id), ',') AS group_styles,
    group_finishing,
    group_elements,
    group_materials,
    group_watchlist
  FROM products p
    LEFT JOIN styles_has_products shp ON shp.products_id = p.products_id
    LEFT JOIN (
                SELECT pue.products_id, CONCAT(',', GROUP_CONCAT(pue.elements_id),',',IFNULL(GROUP_CONCAT(paue.elements_id),0), ',') AS group_elements
                FROM products_use_elements pue
                  LEFT JOIN products_articles_use_elements paue ON paue.products_use_elements_id=pue.products_use_elements_id
                GROUP BY pue.products_id
              ) subquery_1 ON subquery_1.products_id = p.products_id
    LEFT JOIN (
                SELECT ptpm.products_id, CONCAT(',', GROUP_CONCAT(ptpm.products_materials_id), ',') AS group_materials
                FROM products_to_products_materials ptpm
                GROUP BY ptpm.products_id
              ) subquery_2 ON subquery_2.products_id = p.products_id
    LEFT JOIN (
                SELECT muwp.products_id, CONCAT(',', GROUP_CONCAT(muwp.user_id), ',') AS group_watchlist
                FROM minierp_users_watch_products muwp
                GROUP BY muwp.products_id
              ) subquery_3 ON subquery_3.products_id = p.products_id
    LEFT JOIN (
                SELECT products_id, fg+fh+fb+fo+fr AS group_finishing FROM
                  (SELECT p.products_id
                     ,IF(SUM(finishing_goldplate)>0,1,0) fg
                     ,IF(SUM(finishing_hammer)>0,11,0) fh
                     ,IF(SUM(finishing_brush)>0,111,0) fb
                     ,IF(SUM(finishing_oxid)>0,1111,0) fo
                     ,IF(SUM(finishing_rosegoldplate)>0,11111,0) fr
                   FROM products p
                     INNER JOIN products_use_elements pue ON pue.products_id = p.products_id
                   GROUP BY pue.products_id
                  ) dt
              ) subquery_4 ON subquery_4.products_id = p.products_id
  GROUP BY p.products_id ORDER BY p.products_id DESC;

但是当我运行它的时候。Mysql抛出错误

代码语言:javascript
运行
复制
[HY000][1260] Row 8036 was cut by GROUP_CONCAT()

这就是我想要插入的表。

代码语言:javascript
运行
复制
CREATE TABLE `products_analysis_cache` (
  `products_id` int(11) NOT NULL,
  `group_styles` longtext NOT NULL,
  `group_finishing` longtext NOT NULL,
  `group_elements` longtext NOT NULL,
  `group_materials` longtext NOT NULL,
  `group_watchlist` longtext NOT NULL,
  PRIMARY KEY (`products_id`),
  KEY `idx_products_id` (`products_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

我已经为每个列设置了LONGTEXT,以接受一个长文本,但仍然收到相同的错误。

我做错什么了?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-07-14 18:43:33

尝试按照解释的here增加group_concat_max_len的值。它是这样写的:

GROUP_CONCAT()函数允许的最大结果长度,以字节为单位。默认值为1024。

票数 2
EN

Stack Overflow用户

发布于 2017-07-14 18:47:23

您可以将group_concat_max_len变量设置为更大的值。或者使用GROUP_CONCAT(DISTINCT ...)来缩短结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45100917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档