如何在mysql中将列转换为数组?

3
我有一个包含两列的表,user_id和connection_type。这两个字段都不是唯一的。一个用户ID可以出现多次,一个连接类型也可以出现多次。如何将所有连接类型分组到单个用户ID下?
Table I have:

schema: 
user_id -- INT 
connection_type -- STRING

user_id connection_type 
101     4g 
102     3g 
101     4g 
101     2g 
102     2g 
101     4g 
102     4g 
101     4g 
102     4g 
101     4g

Table I need from the above:

user_id connection_type 
101     ['4g','4g','2g','4g','4g','4g'] 
102     ['3g','2g','4g','4g']

展示你的代码,这样我们才能提供帮助。 - nicomp
请考虑在应用程序代码中处理此事。 - Strawberry
在数据中似乎没有任何东西可以保证数组元素的特定顺序。从所显示的数据来看,102 ['4g','2g','4g','3g'](元素以不同的顺序)同样有效。(在有人说这不是问题的答案之前,这就是我将其发布为评论而不是答案的原因)。 - spencer7593
2个回答

3

MySQL本身不支持数组,但如果你需要一个JSON数组,你可以这样做:

select user_id, json_arrayagg(connection_type) connection_types
from mytable
group by user_id

1

你可以在MySQL中使用group_concat函数:

以下是查询语句:

select user_id,
group_concat(",",Connection_type) as connecttion_type
from table
group by user_id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接