其中'foo'或'bar'和'lol'或'rofl'MySQL

Mat*_*rth 4 mysql operator-precedence where-clause

将按什么顺序进行评估.我的意思是,如果它找到foo或bar,它也会搜索lol和rofl.
这完全在树林里吗?如果是这样,那么如何评估这样的表达式.

Luk*_*keH 6

AND运营商的优先级高于OR在MySQL的,所以你当前的表达式的计算结果为:

WHERE 'foo' OR ('bar' AND 'lol') OR 'rofl'
Run Code Online (Sandbox Code Playgroud)

如果要强制执行评估顺序,请在表达式中添加括号:

WHERE ('foo' OR 'bar') AND ('lol' OR 'rofl')
Run Code Online (Sandbox Code Playgroud)