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

标签 mysql sql arrays json aggregate-functions

我有一个包含 2 列的表,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']

最佳答案

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

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

关于mysql - mysql中如何将列转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61524257/

相关文章:

PHP mysql查询没有提供额外的输出

SQL查询以查找具有最多指定标签的事物

mysql - 在条件下使用 GROUP BY,怎么样?

java - 尝试读取 SQL 表时,参数索引超出范围(1 > 参数数量,即 0)

java - 向二维数组添加元素有困难

php - 在一张表中一起生成评论和文本区域

mysql - 错误#1046 : Data too long for column but both source and destination columns are of type char(1)

php - 在 SQL 的用户输入上组织用户输入 n 用户输入

javascript - 如何从javascript中的数组获取输出?

php - 如何处理带有数组的对象以访问特定数据?