Mysql - " OR"的顺序操作者

时间:2014-10-30 15:45:48

标签: mysql logic or-condition

在大型查询中,我有

INNER JOIN file
ON ( file.file_id = temp_student_table.converted_file 
     OR file.file_id = temp_student_table.uploaded_file)

如果file.file_id = temp_student_table.converted_file匹配,MySQL会检查第二个语句吗?如果他们两个都返回一个匹配会发生什么?它只考虑第一个陈述吗?

3 个答案:

答案 0 :(得分:0)

由于你在这里使用OR运算符,它会检查第一个条件。如果第一个语句匹配则继续运行。第二个语句不需要在条件中匹配

答案 1 :(得分:0)

OR条件下,它只评估第一个条件,如果已经为真则退出。

OR运算符有此行为:

A | B | A OR B
0   0     0
0   1     1            0 = False
1   0     1            1 = True
1   1     1

这意味着除非A和B为假,否则A OR B为真。为此,A OR B将评估必要的最低要求:如果A已经为真,那么继续评估条件是没有意义的。

答案 2 :(得分:0)

在Mysql中,OR将返回true:

  • 如果第一个操作数为true,那么第二个操作数将不会被测试
  • 如果第一个操作数为false而第二个操作数为true