数据库查询减少了长文本的结尾

时间:2014-11-19 18:10:06

标签: php mysql

我有这样的查询:

    $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无关,它是一个数据库设置。

1 个答案:

答案 0 :(得分:2)

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

SET SESSION group_concat_max_len = 65536

无需修改您的代码。