mysql sql优化_SQL优化大神玩转MySQL函数系列(1)

大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子

我之前写了,有趣的SQL系列文章,这次准备再开一个系列是MySQL 函数应用系列,

这个系列,肯定不是,不符合实际的 简单的介绍函数的用法,本系列根据实际 需求出发,

介绍MySQL函数 以便大家能更好的记住函数。还有一件事情,就是本系列的名字,

本来叫做 MySQL 函数应用(1)有点太普通,

所以搞了个(震惊 ! 10 年经验 SQL 优化大神 竟然 这样使用 MySQL 函数)

这样才能 增加点击率呢~~

本次,先这样试一下,效果~~

因为,本人 工作在韩国,这个需求也是韩国的,如下

因为韩元的面额相对比较大,很多时候最小单元需要归零

如 20001元 需要 变成 20000元 ,20015 变成 20010 这样

今天的案例就是上面的实际案例,在MySQL 是怎么解决的,并且介绍几个函数。

本次案例是在MySQL 8.0 版本中

ccd3511263e2ced8f73d3bb105d70f35.png

如上图所示, 我们需要把 其中的三行数 分别变成 20000,20000,20010

面对这个问题,我们肯定有很多解决方法,就如,如果大家学过Java 或者别的语言的话,

有时候认为,只要循环+选择 就可以写出很多方法一样,在SQL中,你也可以使用case when

语句实现你要的功能,但本文题目是 使用函数 还是使用特定的函数来解决这个问题。

在这介绍的函数,首先是 FLOOR 函数

12.6.2 Mathematical Functions​dev.mysql.com

2d1c66700ca309ecd6e7531bb681f7f4.png

简单来说就是,返回x的最大整数值,那我们怎么用这个函数呢,

这个函数只能处理小数点部分,20001 也不是小数!不是小数我们可以把它变成小数,

即想对个位数清零我们只需要先除以10 然后调用floor 然后,

对结果乘以10 就可以达到我们的目的了!

7628d9aea4b394852618017b17efe7e2.png

扩展以下 ,如果需求变成十位数以下都清零就变成 先除以100

然后调用floor 然后对结果乘以100 就可以达到我们的目的了

e4162e718f784f52cf7619ed8ae96835.png

本次介绍的函数,就到这了!到这结束, 就有点太可惜,因为我们是依据案例介绍函数,

所以,肯定不止一个方法来解决

上述问题。今天介绍的第二个函数叫做 TRUNCATE

12.6.2 Mathematical Functions​dev.mysql.com

23df17d1b35721367482c0f83893959e.png

大家请看,上述图片中的最后一个,是不是很有意思!

是不是复合,本文需求!

21f9a6b7d804667fb59302bf7cdc67e5.png

谢谢大家~

我是知数堂SQL 优化班老师~ ^^

如有关于SQL优化方面疑问和一起交流的请加 并且 @兔子@知数堂SQL优化

a8baf1f0bcf279c4353b53bf4e8c5d50.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值