2011-05-04 1 views
3

조건이 좋을 때 여러 변수를 설정하고자하는 상황이 있습니다. MySQL에서 IF 내부에 여러 사용자 변수를 설정하는 방법

IF(expr1, @reading:=0 and @prevdate:[email protected], @reading:[email protected]) 

당신은 내가 @reading:=0 and @prevdate:[email protected]을 설정할 참조로

하지만이 작동하지 않습니다.

true 또는 false 노드 내에 어떻게 여러 사용자 변수를 설정할 수 있습니까?

+0

'if' 대신'case'를 시도하십시오. – diEcho

답변

2

문제
AND 단락을 평가한다.
@reading:= 0은 0으로 평가되며, 이는 거짓입니다.

0 and x은 항상 0이므로 MySQL은 x를 평가하지 않아도됩니다.
OR 같은 문제가 있습니다. 1 OR x이 항상 맞습니다.
이것은 결과가 알려지 자마자 멈추어 상황을 빠르게하는 방법입니다. XOR은 단락 회로 평가에서 고통을하지 않기 때문에 @reading:= 0 XOR @prevdate:= @stepdate

이에

솔루션
변경은, 문제를 해결할 것입니다.

1 XOR x은 모두 0 XOR x 일 수 있습니다.

관련 문제