在实际开发中,往往会碰到类似如下的例子
学生课程成绩表:
id | user_id | course_id | score |
1 | 1 | 1 | 80 |
2 | 1 | 2 | 90 |
3 | 1 | 3 | 78 |
4 | 2 | 1 | 80 |
5 | 2 | 2 | 85 |
现在需要你转换成如下的格式:
就是每个学生的成绩信息放在一行中全部显示,而不是用几条记录显示
id | user_id | 语文 | 数学 | 英语 |
1 | 1 | 80 | 90 | 78 |
2 | 2 | 80 | 82 | 0 |
上面就是所谓的将多行转换成一行显示。
下面举个例子:
现有表tb_pushlog_appid_today :
appid 是广告词,resultnum 返回类型 有4,15,99 等几个 返回类型,pushcount,是每个返回类型的次数
有如下数据:
现在 需要将上面 resultnum in (99,15,4)的形式转换成 一列显示:
如下图:其中pushcount是resultnum=99的pushcount; clickcount是resultnum=15的pushcount,installcount是resultnum=4的pushcount
下面有两种方法:
方法1:
方法2:
推荐方法1:比较简单,查询速度快。