MySQL查询
在进行MySQL查询之前首先要先知道MySQL执行查询语句的执行顺序
- 先执行from子句确定数据来源
- 再执行where子句确定筛选条件
- group by子句将数据进行分组
- 使用聚集函数进行计算(sum、max、min、count等)
- 使用having子句筛选分组
- 计算所有的表达式
- select的字段
- 使用order by进行排序
高级排序
在order by中也可以使用case表达式来根据条件逻辑动态的调整排序项
1 | select * from emp order by case when job = 'SALES' then comm else sal end |
特殊的null操作
在sql中对于null值一定要小心处理,true or null的运算结果是true,而false or null的运算结果是null,一旦混入了null,结果就会是null,所以在使用in或者or来进行逻辑运算时,一定要考虑是否会涉及null值
1 | -- 可以正常查到 name为 测试的记录 |