今天发现一个问题,记录一下。
当一条sql语句 有or 与and的时候,网上说and 的优先级比or高。我记得优先级顺序应该是not and or ,所以想当然的认为delete from t where id
=1 or id= 2 and time=3 会删除id =1 并且time =3 的数据,然鹅 并不是。 它删除的是全部的数据(id 和id=2 )
所以一定要注意,or 与and 一起用的话,or 在前and 在后,并且or 要用()括起来。
比如我想删除某部分数据
直接这样删 会把id =2022 和id=2021 全部删掉 后面的时间范围没有生效
加()才会删除id=2022和id=2021并且在时间范围内的数据