作者:罗代均 ldj_work#126.com 转载请保持完整性
1.测试表
employee
雇员id 部门id 薪金
emp_id dept_id salary
01 01 1050
02 01 2000
ok,我们要查找部门01下,薪金高于1000的雇员
2.原则及两个SQL的对比
原则,多数数据库都是从 左到右的顺序处理条件,把能过滤更多数据的条件放在前面,过滤少的条件放后面
SQL1: select * from employee
where salary >1000 --条件1,过滤的数据较少
and dept_id='01' --条件2,过滤的数据比条件1多
上面的SQL就不符合我们的原则了,应该把过滤数据更多的条件放在前面,因此改为下面这样更好
select * from employee
where dept_id='01' --过滤更多数据的条件放在前面
and salary > 1000