我有这样的疑问:

    $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执行。我的问题是
追随者
只包含实际结果的一部分。
我赞同它的价值,但结果是:
字符串(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 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 40277402777 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无关,它是一个数据库设置。

最佳答案

您遇到了GROUP_CONCAT()的默认长度限制,它只有1024个字符。The group_concat_max_len system variable可供您增加限额。确定一个合理的最大值对于应用程序的需求,并为当前会话设置变量。

SET SESSION group_concat_max_len = 65536

因此不需要修改代码。

09-25 17:57