相关疑难解决方法(0)

MySQL和GROUP_CONCAT()的最大长度

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

我非常清楚我可以改变参数group_concat_max_len来增加这个限制:

SET SESSION group_concat_max_len = 1000000;
Run Code Online (Sandbox Code Playgroud)

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

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

mysql group-concat

244
推荐指数
6
解决办法
23万
查看次数

MySQL中的聚合函数 - 列表(如Oracle中的LISTAGG)

我需要函数,它返回字符串列表.

我有这样的表中的数据:

Id    MyString
------------------------
 1    First
 2    Second
 3    Third
 4    Fourth
Run Code Online (Sandbox Code Playgroud)

我需要这样的函数(这样的东西在oracle中工作):

select LISTAGG(MyString, ', ') as myList where id < 4
Run Code Online (Sandbox Code Playgroud)

返回的内容如下:

myList
------------------------
First, Second, Third
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mysql aggregate-functions

27
推荐指数
1
解决办法
3万
查看次数

在查询中将多个记录作为一个字符串返回

students: id, last_name

1 Robinson
2 Norris
3 Smith

sports: id, title

1 Basketball 
2 Baseball
3 Football

students_sports: student_id, sport_id

1 3
1 2
2 1
2 3
3 3
3 1
Run Code Online (Sandbox Code Playgroud)

这个查询

select 
 last_name, sports.title as sport
from 
 students s
left join
 students_sports ss
on
 s.id = ss.student_id
left join
 sports
on
 ss.sport_id = sports.id
Run Code Online (Sandbox Code Playgroud)

它会返回类似于:

last_name       sport
Robinson        basketball
Robinson        baseball
Smith           football
Smith           baseball
Norris          baseball
Norris          basketball
Run Code Online (Sandbox Code Playgroud)

我想修改查询以返回如下结果:

last_name       sport
Robinson        basketball, baseball
Smith           football, …
Run Code Online (Sandbox Code Playgroud)

mysql

3
推荐指数
1
解决办法
2783
查看次数

标签 统计

mysql ×3

aggregate-functions ×1

group-concat ×1