在实际开发中,往往会碰到类似如下的例子
学生课程成绩表:
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,是每个返回类型的次数
文章图片
【mysql 将多行转换一行】有如下数据:

文章图片
现在 需要将上面 resultnum in (99,15,4)的形式转换成 一列显示:
如下图:其中pushcount是resultnum=99的pushcount; clickcount是resultnum=15的pushcount,installcount是resultnum=4的pushcount
文章图片

文章图片
下面有两种方法:
方法1:

文章图片
方法2:

文章图片
推荐方法1:比较简单,查询速度快。
推荐阅读
- mysql|InnoDB数据页结构
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- mysql|一文深入理解mysql
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- SQL|SQL基本功(五)--函数、谓词、CASE表达式
- vue|电商后台管理系统(vue+python|node.js)
- Java及基础算法及数据结构|旧笔记整理(MySQL)
- mysql|双非本211硕,无实习无项目,自学大数据开发,秋招上岸
- 数据库|Mysql--InnoDB存储引擎详解
- MySQL学习笔记-9-order by