这是因为OR的 运算符优先级 低于AND。每当DB看到类似
A AND B OR C
首先评估AND,即等于
(A AND B) OR C
因此,如果您明确想要
A AND (B OR C)
相反,您必须在括号中加上括号。
顺便说一句,这并非特定于SQL。在我所知道的所有编程语言(即至少C,C ++,C#,Java和Unix Shell脚本)中,这些运算符的优先顺序是相同的。
欢迎分享,转载请注明来源:内存溢出
这是因为OR的 运算符优先级 低于AND。每当DB看到类似
A AND B OR C
首先评估AND,即等于
(A AND B) OR C
因此,如果您明确想要
A AND (B OR C)
相反,您必须在括号中加上括号。
顺便说一句,这并非特定于SQL。在我所知道的所有编程语言(即至少C,C ++,C#,Java和Unix Shell脚本)中,这些运算符的优先顺序是相同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)