我有这样的查询:
$sql = "select qu.id as qu_id, qu.question_id as qu_question_id, qu.question_time as qu_question_time, qu.time as qu_time, qu.useruid as q_useruid, qu.originuid as qu_originuid, concat(concat(' ', GROUP_CONCAT(follow.followeruid SEPARATOR ' ')), ' ') as f_followers, concat(concat(' ', GROUP_CONCAT(feeds.user_id SEPARATOR ' ')), ' ') as f_user_id
from (select question_updates.id, question_updates.question_id, question_updates.question_time, question_updates.time, questions.originuid, questions.useruid, questions.id as qu_id
from question_updates
join questions
on question_updates.question_id = questions.id
limit 0, %i) qu
left join follow
on follow.useruid = qu.useruid
left join feeds
on feeds.question_id = qu_id and (follow.followeruid = feeds.user_id or qu.originuid = feeds.user_id or qu.useruid = feeds.user_id)
group by qu_id;";
$elements = App::db()->query($sql, $limit);
这由flourishlib
执行。我的问题是
f_followers
仅包含实际结果的一部分。
我已经回应了它的价值,但结果是:
string(1026)“410187 410187 413087 413087 415151 415151 417290 417290 433722 433722 404603 404603 507657 507657 453264 453264 568415 568415 467570 467570 552061 552061 568842 568842 568842 568842 568842 568842 566207 566207 413241 413241 563720 563720 599200 599200 420944 420944 489667 489667 607203 607203 628892 628892 548470 548470 628001 628001 485418 485418 693679 693679 446736 446736 628922 628922 704588 704588 711213 711213 705814 705814 726077 726077 701705 701705 733424 733424 711319 711319 571667 571667 432333 432333 626145 626145 654618 654618 612619 612619 750817 750817 568955 568955 621153 621153 565888 565888 626355 626355 798923 798923 808107 808107 808107 808107 417740 417740 809480 809480 642222 642222 807336 807336 402777 402777 811486 811486 644565 644565 645200 645200 761810 761810 820679 820679 456459 456459 823283 823283 595438 595438 826692 826692 828011 828011 761635 761635 618987 618987 828800 828800 765090 765090 838269 838269 698528 698528 791219 791219 728155 728155 465008 465008 866256 866256 45“
其中45不是实际值,它实际上是452989值的一部分。
这会导致一个巨大的错误。我的问题是:返回值集中的文本长度是否有MySQL / flourishlib限制?有没有办法告诉MySQL / flourishlib不要削减
的结尾GROUP_CONCAT(follow.followeruid SEPARATOR ' ')), ' ') as f_followers
值?
编辑:正如答案所示,这个问题与flourishlib无关,它是一个数据库设置。
答案 0 :(得分:2)
您违反GROUP_CONCAT()
的默认长度限制,仅为1024个字符。 The group_concat_max_len
system variable可用于增加限额。确定应用程序需求的合理最大值,并为当前会话设置变量。
SET SESSION group_concat_max_len = 65536
无需修改您的代码。