在一个大查询中,我有
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 是否检查第二条语句?如果他们俩都返回匹配项会发生什么?它只考虑第一个语句吗?
在一个大查询中,我有
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 是否检查第二条语句?如果他们俩都返回匹配项会发生什么?它只考虑第一个语句吗?
由于您在OR
此处使用运算符,因此它会检查第一个条件。如果第一个语句匹配,则继续执行。第二个语句不需要在条件中匹配
在一个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
已经为真,则继续评估条件没有意义。
在 Mysql 中,OR 将返回 true: