MySql中应该如何将多行数据转为多列数据

码上中国博客 发布于 07/19 15:50
阅读 537
收藏 0

有一个表有如下两个字段

question_id content
1111 测试内容1
1111 测试内容2
2222 测试内容3
2222 测试内容4

我想实现如下业务:

根据question_id,查询出所有的content,并将content转为一行中的多列,例如我要找question_id = 1111的,则最终结果如下:

question_id content1 content2
1111 测试内容1 测试内容2

注意:question是需要根据查询条件传入的,且content内容是不定的,且根据question_id找到的内容也不一定是就2行,可能有多行,也就是说不能根据case when这种写法判断content

加载中
0
freekevin
freekevin

搜 行转列 SQL  当然代码层面去处理更灵活

码上中国博客
码上中国博客
普通行转列都是使用case when的,解决不了,感觉最终还得去代码层解决。
0
1
1767028198

直接group_concat,而且你这种content1,2不现实,orm做字段映射也是个问题

码上中国博客
码上中国博客
已经有解决方式了,https://ask.csdn.net/questions/7759896?weChatOA=
0
埃塔

个 人觉得,简单直接的方法是运用函数JSON_ARRAYAGG,如:

select    question_id, JSON_ARRAYAGG(question_id, content)  from  urtable  group by  question_id ;
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部