当前位置: 首页 > 面试题库 >

MySQL和GROUP_CONCAT()的最大长度

阳兴文
2023-03-14
问题内容

GROUP_CONCAT()在MySQL查询中使用,将多行转换为单个字符串。但是,此函数结果的最大长度为1024字符。

我非常清楚,我可以更改参数group_concat_max_len以增加此限制:

SET SESSION group_concat_max_len = 1000000;

但是,在我使用的服务器上,我无法更改任何参数。不能通过使用前面的查询,也不能通过编辑任何配置文件。

所以我的问题是:还有其他方法可以将多行查询的输出转换为单个字符串吗?


问题答案:
CREATE TABLE some_table (
  field1 int(11) NOT NULL AUTO_INCREMENT,
  field2 varchar(10) NOT NULL,
  field3 varchar(10) NOT NULL,
  PRIMARY KEY (`field1`)
);

INSERT INTO `some_table` (field1, field2, field3) VALUES
(1, 'text one', 'foo'),
(2, 'text two', 'bar'),
(3, 'text three', 'data'),
(4, 'text four', 'magic');

这个查询有点奇怪,但是不需要另一个查询来初始化变量。并且可以将其嵌入更复杂的查询中。它返回所有用分号分隔的“ field2”。

SELECT result
FROM   (SELECT @result := '',
               (SELECT result
                FROM   (SELECT @result := CONCAT_WS(';', @result, field2) AS result,
                               LENGTH(@result)                            AS blength
                        FROM   some_table
                        ORDER  BY blength DESC
                        LIMIT  1) AS sub1) AS result) AS sub2;


 类似资料:
  • 问题内容: 在这篇文章之后:关于比赛的帖子 我的问题是我有很多行成一行。例如,如果我有10行,字符串约50个字符,我的查询将只显示6-7行或类似的内容。我在堆栈和Google中进行搜索,发现可以通过以下命令更改CONCAT最大长度:。我做错了什么? 编辑: 当我向我显示1024。MySQL版本5.0.96-log。表类型:MyISAM。看起来它没有任何限制,我尝试选择具有2000个字符的简单var

  • 问题内容: MySQL中表名的最大长度是多少? 问题答案: 根据64个字符此。

  • 问题内容: 我正在创建一个用于发送私人消息的表单,并希望将textarea 的值设置为适合MySQL数据库表中字段的最大长度。类型文本字段可以存储多少个字符? 如果很多,我可以像使用varchar一样在数据库文本类型字段中指定长度吗? 问题答案: 请参阅参考资料以获取最大数量:http : //dev.mysql.com/doc/refman/5.0/en/storage- requirement

  • 问题内容: 我试图从表中获取所有列的列表,这些列表包含它们的数据类型,数据长度和该列中最长值的长度。 我使用此SQL来获取列及其数据类型和长度: 我有此SQL,用于获取值的最大长度: 但是我不知道如何将它们结合起来。我正在使用SQL Server 2008。 问题答案: 感谢您的建议。我想出了以下解决方案。它为我获取了我需要的数据,但是希望了解它是否可以提高效率。

  • 问题内容: 当我尝试过时如何设置可以使用swift输入到UITextField中的最大字符数?,我看到如果我全部使用10个字符,我也无法删除该字符。 我唯一能做的就是取消该操作(一起删除所有字符)。 有谁知道如何不遮挡键盘(以便我不能添加其他字母/符号/数字,但可以使用退格键)? 问题答案: 对于Swift 5和iOS 12,请尝试以下协议实现方法的实现: 该代码最重要的部分是从()到()的转换。

  • 配置最大长度为数据存储提供了有关示意,示意其为给定属性使用合适的数据类型。最大长度仅被应用于数组数据类型,比如 string 和 byte[]。 注意 Entity Framework 在将数据传递给数据库提供程序之前不会做最大长度验证。是否合适是由数据库提供程序或数据储存验证的。比如,使用的是 SQL Server 时,超出最大长度将由于底层数据列的数据类型不允许数据超出而导致异常。 惯例 按照