0

我正在阅读这个关于 逻辑运算符 OR AND 在条件和条件顺序中的问题 WHERE

但是我想扩展这个问题。

问题一:

IF (CONDITION 1) OR (CONDITION 2)

我不是在谈论If CONDITION 1 is TRUE, will CONDITION 2 be checked

但是 - SQL 是否有可能会根据condition 2(这是第二个短语)而不是condition 1第一个短语来选择行?

例如 :

columnA      columnB
  2              2

select * from table where id=columnA or id=columnB

现在,我是否有可能得到该行,因为它首先评估 id=columnB

问题2 :

这个问题谈到了该Where条款。加入呢?这些角色是否也适用

select * from Table1 join Table2 on Table1.id=Table2.id or Table1.aa = Table2.aa

  • 如果 CONDITION 1 为 TRUE,是否会检查 CONDITION 2?
  • SQL是否有可能基于condition 2(这是第二个短语)而不是condition 1第一个短语产生一行
4

1 回答 1

2

我不明白你的问题中关于产生行的部分,所以到目前为止我唯一能回答的部分是:

如果 CONDITION 1 为 TRUE,将检查 CONDITION 2

这取决于。它可能,它可能不会。不保证 SQL 语句的任何部分的短路或评估顺序。

于 2013-02-12T09:41:50.757 回答