我在 mysql 查询中遇到 group_concat 问题:
它停在513号码上!
这是正常查询,它返回 813 行:
SELECT *
FROM survey_votes
WHERE sid = '4'
现在问题出在这个查询上:
SELECT s.*,
GROUP_CONCAT(v.oid) AS myoids
FROM survey s
LEFT JOIN survey_votes v ON s.sid=v.sid
WHERE s.sid='4'
这将返回 1 行,其中包含最多 513 个字符串的数组“myoids”。
表“调查”的结构:
sid int(11)
stitle varchar(255)
sdesc text
soptions text
sdate datetime
active int(1)
调查投票:
vid int(11)
sid int(11)
uid int(11)
uip varchar(255)
oid int(11)
sdate datetime
myoids 最多仅包含 513 行:
Array
(
[0] => 1
[1] => 1
[2] => 3
.........
[511] => 1
[512] =>
)
最佳答案
这是因为MySQL截断了GROUP_CONCAT
的结果达到一定限制后:
The result is truncated to the maximum length that is given by the group_concat_max_len system variable, which has a default value of 1024.
尝试增加 group_concat_max_len
的值使用SET
命令变量:
SET SESSION group_concat_max_len = 1024 * 1024; -- 1MB
关于php - mysql 查询中的 group_concat 提前停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702177/