【问题标题】:MySQL query with UNION returns trimmed string使用 UNION 的 MySQL 查询返回修剪后的字符串
【发布时间】:2018-08-18 14:20:39
【问题描述】:

我有两个具有相同 JSON 列的表。我的查询需要联合两者中的一些行。问题是 UNION 会修剪结果(请参阅:http://sqlfiddle.com/#!9/506e43/1/1)。 此处的解决方案 (Teradata string truncated after UNION ALL) 是将列强制转换为 CHAR(n) 但在我的情况下,这不起作用,因为结果的长度可能在 200 到 2000 个字符(或有时更多)之间变化。

有没有更好的解决方案?

【问题讨论】:

    标签: mysql database union


    【解决方案1】:

    我不确定这是否是 UNION 的问题,但我遇到了一个非常相似的问题,即大型合作伙伴崩溃的应用程序 - 我们发现 MySQL group_concat 硬修剪了输出。对我们来说,超过 1024 个字符被丢弃 - 因为我们期待 XML - 不想要的输出。

    您可以在 my.ini 文件中将 group_concat 的最大长度设置为更大的值,或者如果您需要临时较大的内容,我们有时会在会话期间设置它,类似于:MySQL and GROUP_CONCAT() maximum length

    (来自上面的帖子)

    SET SESSION group_concat_max_len = 1000000; select group_concat(column) from table group by column

    这是他们文档中的信息 - 您可以单击该属性以获取更多信息:https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

    【讨论】:

    • 我将此标记为答案,因为它有效。但可以肯定的是,我想了解为什么没有 UNION 的查询有效,但没有它的查询无效。
    • 嗯,更多的研究似乎可能是一个问题?当使用 union all 和 group_concat 时,如果你不设置长度,人们会得到截断的结果:stackoverflow.com/questions/47733920/…
    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2011-12-30
    • 2022-01-02
    • 2020-06-11
    相关资源
    最近更新 更多