- 最近发现很多时候代码优化有限的时候sql的利用优化就很关键了特别是sql中的一些函数的使用,以下是最近使用的函数整理下
1.0.0 去重 DISTINCT
- distinct(xxx) 函数可以起到 去重的作用 distinct(id) 等于去除重复的id
-
select DISTINCT(name), id from user
查询user表中的所有名字和id然后去掉名字重复的结果
1.0.1 拼接/连接concat(string,string)
- concat('hello','world') concat('hello',name)
- 顾名思义就是在使用的时候可以把前后两个字符串拼接在一起使用得到自己需要的需求,而且还可以用字符串和表字段的字符串进行拼接.
1.0.2循环遍历/递归 strat with.....connect by prio...
- start with:循环递归的根节点(我的理解就是从什么样的条件下开始递归)
- connect by prio...:以什么样的条件进行递归(也就是说如果能满足这个条件就继续查找,查到无法满足这个条件的时候结束)
- 详细可看https://blog.csdn.net/weixin_42452732/article/details/82114060
1.0.3包含instr(a,b) >0
- instr('abcd','ab')>0 判断'abcd'中是否包含'ab' 我一般放在sql的where条件中进行判断
1.0.4判断 case..when..then..else..end
-
case when name = '张三' then null else name end
判断name是否是张三如果是则取null如果不是则取name的值
-
这个语句很多地方都可以用 我基本就是当字符串的替换使用了
-
然后在end 后面还可以加as 别名 进行别名取名
End.....
这些函数有时候用起来有奇效,不过我修行尚浅233333333333333