MySQL 查询 UNION 返回修剪后的字符串

标签 mysql database union

我有两个具有相同 JSON 列的表。我的查询需要合并两者中的一些行。问题是 UNION 修剪了结果(参见: http://sqlfiddle.com/#!9/506e43/1/1 )。 这里的解决方案( Teradata string truncated after UNION ALL )是将列转换为 CHAR(n) 但在我的例子中,这不起作用,因为结果的长度可能从 200 到 2000 个字符(有时更多)不等。

有更好的解决办法吗?

最佳答案

我不确定这是否是 UNION 的问题,但我的一个应用程序遇到了非常类似的问题,该应用程序对于较大的合作伙伴来说崩溃了 - 我们发现 MySQL group_concat 硬修剪了输出。对于我们来说,超过 1024 个字符的任何内容都会被删除 - 并且因为我们期待 XML - 不期望的输出。

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

(摘自上面的帖子)

设置 session group_concat_max_len = 1000000; 从表组中按列选择group_concat(column)

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

关于MySQL 查询 UNION 返回修剪后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49203457/

相关文章:

mysql - 如何从 RedHat 上运行的 MySQL 查询 CPU 利用率?

mysql - 为什么commit不会造成死锁

mysql - 为给定字符串搜索数据库的好算法

php - 如何查询第一个和最后一个日期

mysql - 使用 "Union distinct"构造时保留子查询中记录的顺序

mysql - 如何在UNION查询中的两个表中使用where条件?

php - PHP中如何删除重复值

php - Laravel、Carbon 和 Timestamp,如何设置默认值?

MySQL:将排序规则从 utf8_bin 更改为 utf8_unicode_ce

mysql - 如何以编程方式在 MySQL 中设置 max_connections