Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-的顺序;或;操作人员_Mysql_Logic_Or Condition - Fatal编程技术网

Mysql-的顺序;或;操作人员

Mysql-的顺序;或;操作人员,mysql,logic,or-condition,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\u id=temp\u student\u table.converted\u file匹配,MySQL是否检查第二条语句?如果他们两个都返回一个匹配,会发生什么?是否只考虑第一个语句?< p>

在一个大的查询中,我有

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

如果
file.file\u id=temp\u student\u table.converted\u file
匹配,MySQL是否检查第二条语句?如果他们两个都返回一个匹配,会发生什么?是否只考虑第一个语句?

< p>因为您使用的是<代码>或运算符,这里检查第一个条件。如果第一个语句匹配,则它继续进行。第二个在“<代码>或条件”中不需要匹配在

< P>中。它将只计算第一个条件,如果它已经为真,则退出

或操作员有以下行为:

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

这意味着
A或B
为真,除非A和B为假。为此,
A或B
将计算所需的最小值:如果
A
已为true,则没有必要继续计算该条件。

在Mysql中,或将返回true:

  • 如果第一个操作数为true,则不会测试第二个操作数
  • 如果第一个操作数为false,第二个操作数为true

否。如果它是
且第一个匹配,则第二个不必匹配。@fedorqui因此,如果它们都匹配,则只考虑第一个。对吧?为什么不测试一下并找出答案呢?我不能超过一分钟。如果其中一个有副作用或错误,例如被零除,这很重要。的可能重复