gpt4 book ai didi

php - 动态为列的 MySQL 查询分配内存

转载 作者:行者123 更新时间:2023-11-29 10:32:36 24 4
gpt4 key购买 nike

我有这个查询:

SELECT DISTINCT(po.mark) franquicia, COUNT(po.id) failures, GROUP_CONCAT(po.log_transaction SEPARATOR ';') logs, DATE(po.created) fecha
FROM pagos_onlines AS po
INNER JOIN usuarios_tokens AS ut ON po.usuario_token = ut.id
WHERE status = 'REJECTED'
AND created > '2017-10-03 11:00:01'
GROUP BY fecha, franquicia;

问题是 log_transaction 是表中的 BLOB 类型,它存储 JSON 数据,因此字段“logs”应该是一个包含串联 JSON 的巨大字符串。当我运行这个查询时,“logs”字段中只出现了一个半 JSON,所以我的猜测是该字段的内存空间不足。

有没有办法在运行 MySQL SELECT 查询时为特定列动态分配内存?

最佳答案

此查询几乎肯定会引发有关 GROUP_CONCAT 剪切数据的警告。如果您使用的客户端或库忽略警告,则可以在运行查询后立即运行查询 SHOW WARNINGS;,并确认此警告是否存在。

要解决此问题,您需要增加系统变量 @@GROUP_CONCAT_MAX_LEN 的值获得更长的结果而不被截断。

默认值仅为 1024(根据文档,是字节,不是字符)。您可以在全局配置中更改此设置,或在运行此查询之前在 session 中更改它。

关于php - 动态为列的 MySQL 查询分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47106182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com