我有一个MariaDB查询使用新的JSON函数,查询突然停止工作的行数增加。
在深入研究这个问题时,我注意到JSON_ARRAYAGG
返回的JSON是无效的,为了确保这不是一个协议问题,我将查询修改为
SELECT date(created_at), length(JSON_ARRAYAGG(JSON_EXTRACT(items,'$'))) a FROM sales where
Date(created_at) >= Date('2023-08-14') and Date(created_at) <= Date('2023-08-19')
2023-08-14,1048578
最有意义的是,函数不能返回大于1024*1024字节的字符串。
我试着在谷歌上搜索,并要求那里的虚拟援助,但没有指向这样的限制。
这个测试案例表明,一些MariaDB函数确实能够处理更大的字符串。
SELECT length(repeat("AAA",1048576))
关于这个限制有什么想法、经验或来源吗?
谢谢
这个查询是一个更大的子查询的一部分,所以它不会直接在客户端语言中重建逻辑。
1条答案
按热度按时间rks48beu1#
长度由系统变量group_concat_max_len控制,如您所见,默认值为1M。
这可以在全局、每个会话或per statement中更改,如: