连接和转义字符后输出不完整[重复]

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输出的截图:enter image description here

我也计算过,每一行都有345个字符,它在同一点断开。这似乎并非巧合:

enter image description here

从我所看到的,我应该正确地逃脱角色。有什么建议?

答案

它没有转义或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端对这么多数据进行分组是一个坏主意。

以上是关于连接和转义字符后输出不完整[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本之循环语句和转义字符

Vscode在使用变量之前转义斜杠

Shell编程之循环语句和函数

Shell脚本之循环语句(forwhileuntil)

echo的使用和{}的替换结构

Razor怎么不进行转义输出