首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >mysql group_concat,大小限制是否只适用于返回值?

mysql group_concat,大小限制是否只适用于返回值?
EN

Stack Overflow用户
提问于 2013-03-20 05:05:34
回答 1查看 1.2K关注 0票数 1

在不详细说明原因的情况下,我想根据group_concat函数的结果进行连接。(不用说,我不能改变最大长度参数,但计划捕获一个我可以用来连接的散列)从外观上看,我在使用md5时得到了不同的值。例如:

代码语言:javascript
复制
select CONVERT(md5(group_concat(mycolumn))  USING utf8) ... 

通过将group_concat值粘贴到引号中,返回不同的结果

代码语言:javascript
复制
select CONVERT(md5(group_concat('truncated value returned by group_concat...')) USING utf8)

我是否可以假设group_concat向md5函数返回了完整的结果,或者这种差异可能是由其他原因造成的?

EN

回答 1

Stack Overflow用户

发布于 2018-07-17 04:24:26

一种策略是首先对行执行md5(concat())操作,这会将大小减少到每行32字节,然后对整个操作执行group_concat操作。这将允许您一次获得floor(group_concat_max_len / 33)行的散列(不要忘记逗号)。

我做了类似的here

如果这仍然不适合您的group_concat_max_len,那么您可以使用GROUP BY生成比floor(group_concat_max_len / 33)行更小的组,对这些行进行散列,然后对这些散列进行散列(同样是在小于...的组中)。这将是丑陋的,但您可以继续嵌套到所需的深度,以散列所需的行数。

或者你可以要求某个有能力修改group_concat_max_len的人用上面的策略来威胁他们的CPU。

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

https://stackoverflow.com/questions/15510418

复制
相关文章

相似问题

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