2014-03-13 140 views
0

假设的条款我有一个select语句:条件在select语句

SELECT * FROM TABLE WHERE a=a or b=b and c=c 

是否条件如下评价:

1->a=a 2->b=b 3->b=b and c=c 4->a=a or b=b and c=c

我有一些困惑。

+0

为什么要添加供应商特定标签?这件事肯定是供应商不可知的,所以'sql'标签就足够了。 –

回答

5

and has higher precedence。这是一样的

SELECT * FROM TABLE 
WHERE a=a or (b=b and c=c) 

查询返回那里要么

a=a 

b=b AND c=c 
+0

你能列出没有支架的步骤吗? – user3275944

+0

SELECT * FROM TABLE WHERE a = a或b = b和c = c,因为这个可以告诉我答案吗?即没有括号 – user3275944

+0

与没有括号相同。 '和'绑定超过'或'。 –

-1

首先,它评估和再或全部记录。所以如果a = a,无论剩下的是什么。

这意味着AND具有更高的优先级。当a=a or b=b and c=c条件实际上是计算的第一部分(A = A)被选中,如果这是真的,不管什么休息 真或(任意值)的值=真

你能不能加上括号,你需要?

+0

我没有找到你 – user3275944

+0

请扩大你的答案。有超过1000个答案,你肯定可以做得更好。 –

+0

纠正了答案 – StanislavL