连接和转义字符后输出不完整[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接和转义字符后输出不完整[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我有一个字符串,在mysql上完成了连接值,如下所示:
CONCAT("["",GROUP_CONCAT(DISTINCT(concat_ws("=>",val_1, val_2,val_3)) ORDER BY val_4 DESC SEPARATOR "",""),""]")
我注意到每行的输出似乎都不完整,从var_dump
看起来像是这样:
"["CONFECTIONERY=>BISCUITS=>CRACKERS",
"CONFECTIONERY=>BISCUITS=>COOKIES",
"ORIENTAL GROCERY=>KOREAN GROCERY=>KOREAN FOOD (DRY, PACKET)",
"BEVERAGE=>COFFEE=>PREMIX COFFEE POWDER",
"CLEANING AGENT & PEST CONTROL=>LAUNDRY=>LAUNDRY LIQUID",
"CLEANING AGENT & PEST CONTROL=>LAUNDRY=>LAUNDRY POWDER",
"BEVERAGE=>TEA=>WESTERN TEA",
"CEREAL & SPREADS=>CEREAL=>"
它缺少结束方括号,也缺少=>字符后的第三个元素。并且其他线也在同一位置中断。如果我在php中尝试使用json_decode
这个输出我可能因为没有很好的编码而得到NULL,因为最长的行(超过345个字符)被剪切掉了。
或者可能是与字符串长度有关的问题?因为我注意到它们很长并且它们在与角色相同的位置中断。请参阅下面mysqlworkbench输出的截图:
我也计算过,每一行都有345个字符,它在同一点断开。这似乎并非巧合:
从我所看到的,我应该正确地逃脱角色。有什么建议?
答案
它没有转义或php代码的问题,它是一个mysql服务器限制添加到分组机制函数,对于这个例子group_concat。
有关更多信息,请阅读手册:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len
您可以为此查询或全局更改此sys_option,但在db端对这么多数据进行分组是一个坏主意。
以上是关于连接和转义字符后输出不完整[重复]的主要内容,如果未能解决你的问题,请参考以下文章