[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]mysql的row 1 was cut by group_concat()的问题。

上一篇:[备忘]jquery动态调整表格行的顺序,上移,下移~~
下一篇:[备忘].net下安装Spread控件的费劲经历~~

添加日期:2014/11/8 23:09:46 快速返回   返回列表 阅读11576次
如有这么一段:


    DROP TEMPORARY TABLE if exists tmp_table;
    CREATE TEMPORARY TABLE tmp_table
    SELECT A.`id`,A.`leftId`,A.`rightId`,A.`pid`,
        (
            SELECT group_concat(CAST(B.`id` as char)) as idStr 
            FROM `product_sort_tree_node` as B
            WHERE B.`treeId` = A.`treeId`
            AND B.`leftId` between A.`leftId` AND A.`rightId`
        ) as idStr
    FROM `product_sort_tree_node` as A
    WHERE FIND_IN_SET(CAST(`id` as char),vSubNodeIdStr);



把所有子节点的ID,用逗号分隔拼起来,
 group_concat(CAST(B.`id` as char)) as idStr

当节点比较多的时候,就报错:
row 1 was cut by group_concat()

搜了一下,group_concat有个默认的最大拼接长度,好像是1024
太小了。
==================================================================
在执行之前,来一句:
SET group_concat_max_len=200000;
妥妥的~~~
 

评论 COMMENTS
guest436804498
2021/11/5 9:28:32
前提是你有权限啊,不过还好这拼接不常用,只是特殊取数用一下。

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved