首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Where 'foo‘OR 'bar’AND 'lol‘OR 'rofl’MySQL

Where 'foo‘OR 'bar’AND 'lol‘OR 'rofl’MySQL
EN

Stack Overflow用户
提问于 2010-11-24 19:43:28
回答 4查看 519关注 0票数 4

这将以什么顺序进行评估。我的意图是,如果它找到foo或bar,它也会搜索lol和rofl。

这是不是完全在森林里?如果是这样的话,如何计算这样的表达式呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-24 19:47:50

The AND operator has higher precedence than OR in MySql,因此当前表达式的计算结果为:

代码语言:javascript
复制
WHERE 'foo' OR ('bar' AND 'lol') OR 'rofl'

如果要强制计算顺序,请在表达式中添加括号:

代码语言:javascript
复制
WHERE ('foo' OR 'bar') AND ('lol' OR 'rofl')
票数 6
EN

Stack Overflow用户

发布于 2010-11-24 19:46:19

将首先处理AND,然后再处理OR。因此,它将是:

代码语言:javascript
复制
'foo' OR ('bar' AND 'lol') OR 'rofl'

在那之后,它是从左到右的顺序。

票数 4
EN

Stack Overflow用户

发布于 2010-11-24 19:46:06

看看the documentation --它的优先级更高,所以它应该是这样的:

代码语言:javascript
复制
WHERE 'foo' OR ( 'bar' AND 'lol' ) OR 'rofl'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4266346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档