-1

在一个大查询中,我有

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 是否检查第二条语句?如果他们俩都返回匹配项会发生什么?它只考虑第一个语句吗?

4

3 回答 3

0

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

于 2014-10-30T15:48:37.213 回答
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 OR B除非 A 和 B 为假,否则 为真。为此,A OR B将评估必要的最小值:如果A已经为真,则继续评估条件没有意义。

于 2014-10-30T15:51:51.137 回答
0

在 Mysql 中,OR 将返回 true:

  • 如果第一个操作数为真,则不会测试第二个操作数
  • 如果第一个操作数为假而第二个操作数为真
于 2014-10-30T15:53:33.410 回答