写了这么多简单的sql,很多东西忘记得差不多了,差点连最基本sql运算符优先级都忘了.平时最常用到and or的优先级都忘了
and的优先级高于or的优先级 举个例子
select * from user where a=1 and b=2 or c=3 and d=4
上面的sql,where子句中执行的先后顺序是:最先是 a=1 and b=2 然后是 c=3 and d=4 最后是两个结果集or 等于 (a=1 and b=2) or (c=3 and d=4 )
来个截图,
运算级别从高到低,or比and低两级,中间隔了个XOR
该图来自MySQL官网,地址是:http://dev.mysql.com/doc/refman/5.7/en/operator-precedence.html