mysql 原生语句点滴学习记录

网友投稿 590 2022-10-06

mysql 原生语句点滴学习记录

mysql 原生语句点滴学习记录

点滴 SQL 记录

​​一、IF使用方法​​​​二、group by 分组之后查找重复的项(HAVING)​​​​三、Case两种格式:简单Case函数和Case搜索函数。​​​​四、group by分组之后取出最大值​​​​五、month 和 year 的使用​​​​六、行数据转列数据​​​​六、列数据转行数据​​

​​1. 第一种情况:​​​​2. 第二种情况:​​

一、IF使用方法

IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3

如下:

二、group by 分组之后查找重复的项(HAVING)

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。

查找phone不为空,且重复的手机号,原始数据:

sql 和执行后的结果:

三、Case两种格式:简单Case函数和Case搜索函数。

1、简单Case函数

case sex when '1' then '男' when '2' then '女' else '其他' end

2、Case搜索函数

case when sex = '1' then '男' when sex = '2' then '女' else '其他' end

case用法详细介绍地址​

四、group by分组之后取出最大值

原始数据

使用sql查询: ​​SELECT id, sex, age, max(age) AS age_en FROM USER GROUP BY sex​​

五、month 和 year 的使用

六、行数据转列数据

user1表: 主要用到user_name

user_kills表:主要用到user_id 和 kills 字段

最终目的需要形成如下表数据类型:

八戒

悟空

沙僧

47

24

9

sql语句如下:

3、select * sum(case when user_name=’沙僧’ then kills end) as ‘沙僧’, sum(case when user_name=’猪八戒’ then kills end) as ‘八戒’ sum(case when user_name=’孙悟空’ then kills end) as ‘悟空’ from user a join user_kills as b on a.id = b.user_id;

六、列数据转行数据

1. 第一种情况:

原始表数据内容:user1 表

序列表:

思路过程:首先 mobile 最后面加逗号,然后统计 mobile 有多少

最终 sql 语句:

2. 第二种情况:

select user_name,'arms' as equipment,arms from user1 a join user1_epuipment b on a.id = b.user_id;

查询结果如下:

最终使用 union 连接多个查询结果:

select user_name,'arms' as equipment,arms from user1 a join user1_epuipment b on a.id = b.user_idunionselect user_name,'clothing' as equipment,clothing from user1 a join user1_epuipment b on a.id = b.user_idunionselect user_name,'shoe' as equipment,shoe from user1 a join user1_epuipment b on a.id = b.user_id

如果确定每个结果是不重复的话,可以使用 union all 效率更高一点 最终实现的效果如下:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序实现拖拽 image 触摸事件监听(微信小程序拖拽开发)
下一篇:DVA框架统一处理所有页面的loading状态(dva状态管理)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~