优先级从高到低:
1. 否定运算符 NOT
2. 与运算符 AND
3. 或运算符 OR
首先,NOT运算符的优先级最高。当大家使用NOT运算符时,它会首先将其紧挨着的运算对象取反。
SELECT * FROM table WHERE NOT age=18 AND name='tom';
上面的语句中,NOT运算符首先对age=18进行取反,然后再和name=’tom’使用AND运算符进行逻辑运算。
其次是AND运算符的优先级。当大家在查询语句中同时使用AND和OR运算符时,AND会优先进行逻辑运算。这时大家可以使用小括号来改变优先级。
SELECT * FROM table WHERE age>18 AND (name='tom' OR name='jerry');
上面的语句中,小括号内的OR运算符会先被优先计算,然后和age>18使用AND运算符进行逻辑运算。
最后是OR运算符的优先级。当大家在查询语句中同时使用OR和AND运算符时,OR会被最后进行逻辑运算。
SELECT * FROM table WHERE age>18 OR name='tom' AND gender='male';
上面的语句中,AND运算符会先进行逻辑运算,然后和OR运算符进行最后的逻辑运算。
总之,大家在使用MySQL的逻辑运算符时,应该了解它们的优先级。同时,大家可以使用小括号来改变优先级,以保证查询语句的正确性。