有一个表有如下两个字段
| 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
MySQL
搜 行转列 SQL 当然代码层面去处理更灵活
直接group_concat,而且你这种content1,2不现实,orm做字段映射也是个问题
个 人觉得,简单直接的方法是运用函数JSON_ARRAYAGG,如: