我在MySQL查询中使用GROUP_CONCAT()将多行转换为单个字符串.

我非常清楚,我可以更改param 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');

这个查询有点奇怪,但它不需要另一个查询来初始化变量;它可以嵌入到更复杂的查询中.

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; 

Mysql相关问答推荐

在SQL中连接两个表,从第一个表中 Select 随机行

SQL条件 Select 和条件WHERE

慢查询日志(log)甚至包括快速查询,因为它包括等待锁定所花费的时间

如何在Sequelize中将查询作为选项?

可以优化这个带有重复WHERE子句的查询吗?

获取最大登录应用程序用户数以及何时

从单行中获取最大日期的最佳方法

为什么用PyMySQL构建的json返回结果会出现重复?

如何找到每个user_id每个产品的买家类型数量?

java.lang.NullPointerException:无法调用com.proj.my.repository.OrderRepository.save(Object),因为this.orderRepository为空

MySQL - 单词边界的正则表达式,不包括下划线(连接标点符号)

MySQL 8 - MBRContains 不使用空间索引

MySQL - 考虑到所有前几天,每天计算唯一用户

在 postgresql 中实现 UML 类:创建类型与创建表

Golang Gorm 没有创建带有约束的表

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

如何在sql中挑出某些名称

MySQL Workbench - 如何同步 EER 图

是否可以在内部连接期间重命名连接列?

MySQL - 表'my_table'没有被锁定表锁定