** 在简写中的condition返回的结果为0或者1,字段的值乘以条件的结果得到就是其本身和0 **,这就和if和case中表达是同一个意思,达到了简写的效果。
上篇文章我介绍了Mysql sql查询流程控制中case关键词,今儿我们再来看一个有关流程控制的关键词if。
if()在语法上只有一个条件参数,比较简洁,看起来干净利落。
if (condition, result_true, result_false);
//添加为true,则获取第一个参数的值,参数为家则取第二参数的值
这个if函数有关缺点就是无法处理多条件情况。对于多条件的我们可以用case或者下面即将介绍的if-then-else-end if关键词
//单条件用法
if condition then result1 else result2 end if
//多条件用法
if
condition then result1
elseif
condition2 then result2
else
result3
end if
3.在一些聚合函数中,if的省略写法
sum(field * condition)
....
//等同于
sum(if(condition,field,0));
sum(case when conditon then field else 0 end);
...
在简写中的condition返回的结果为0或者1,字段的值乘以条件的结果得到就是其本身和0 ,这就和if和case中表达是同一个意思,达到了简写的效果。
很多时候我们写代码需要使用简洁的写法,不仅能提高开发效率,能够减少代码量,提高代码的易读性。
用事实证明简写的好处,下图是我曾经一个项目中所写的sql。
sql本身并不难,只是需要按不同条件统计的字段比较多。如果不简写大家可以自行替换一下或者想象一下,再加上其他过滤添加,代码是不是显得难以阅读?
好了以上就是我想分享的关于mysql流程控制关键词if()的介绍,还有就是简写的一些好处,希望对大家能有所帮助。
除特别注明外,本站所有文章均为作者原创。 或分享自己的编程经验,或探讨工作中的问题,或聊以人生趣事。 转载请注明出处来自 https://www.qiusuoweb.com/45.html
运营天数
总访问量
文章数量
-
-
-
交流群:157451741
新浪微博:草莽兴
发布评论