我的问题是:- 假设我们有如下条件 (条件A或ConditionB或ConditionC)。如果我的conditionA变为true,则将检查其他条件,或者我将跳过这些条件。
答案 0 :(得分:0)
它将跳过其他的; 一旦满足条件之一!
答案 1 :(得分:0)
-更新
好-我错过了重点(见下文)。 在TSQL中,该子句按顺序进行求值,但是一旦将某行视为匹配项,就不对下一个OR求值。
所以select * from information_schema.columns where 1=1 or 1/0=10
不会失败,因为1总是等于1,并且永远不会进行除以零。
另一方面
select * from information_schema.columns
where COLUMN_NAME like 'keyname_%' or 1/0=10
如果所有column_names以keyname开头,则成功,但如果第二个条件被求值,则任何列都不以keyname开头,则错误。
-老答案 有时候,如果您大声说出逻辑,那就很明显了……
因此,如果“食物=鱼或食物=肉或食物=蔬菜,然后煮食物” 。 显然,如果食物是肉,鱼或蔬菜,那么您可以煮饭。
通常会吸引人的地方是您还想要AND的地方 所以。 如果“食物=鱼或食物=肉或食物=蔬菜和烤箱=工作然后煮食物”。 如果烤箱正在工作,这将尝试烹饪食物,无论您是否有食物。
另一方面,如果“(食物=鱼或食物=肉或食物=蔬菜),烤箱=工作然后煮食物” 表示您必须有鱼,肉或蔬菜以及烤箱必须工作。因此,通过将“或”分组到括号中,我们将其与“与”分离。