mysql이 선언적 언어라는 사실 때문에 할당 변수 순서를 강제로 지정하는 방법을 찾을 수 없습니다. mysql 변수 할당 : 강제로 할당 순서를 지정하는 방법?
이 쿼리를 가지고 :SET @v1=0;
SET @v2=0;
SELECT @v1, @v2
FROM MyTable table
WHERE (@v1:[email protected]) is not null
AND (@v2:=2) is not null;
결과는 다음과 같습니다 @ v2의이 MySQL의 엔진에 의해 V1 @ 전에 구문 분석되기 때문에
@v1 | @v2
---------
2 | 2
이입니다.
@v1 | @v2
---------
0 | 2
편집 :이 같은 문제되지 않습니다 : 나는이 결과를 가지고 할당의 순서를 강제로 어떻게
여기 Variable assignment with mysql
은 할당 순서를하지 강제하는 방법에 대한 질문입니다 왜 결과는 예상 한 것이 아닙니다.
UPDATE : 당신이 가입 왼쪽 외부를 사용할 때 는, 결과도 이상하다 :이 경우
SET @v1=0;
SELECT @v1
FROM Account other
LEFT OUTER JOIN SimpleValue f_PC ON f_PC.accountId=other.id AND f_PC.refShortcut='PC'
WHERE CASE WHEN (other.context='44') THEN (@v1:[email protected]+1) ELSE null END
ORDER BY @v1 ASC
는 쿼리가 60 개 결과를 반환하지만 @ v1의 값은 내가 제거하면 120
입니다 왼쪽 외부 조인, v1 값은 60입니다. 왜?
[mysql을 통한 변수 할당] 가능한 복제본 (http://stackoverflow.com/questions/4924021/variable-assignment-with-mysql) –
왜이 질문을 다시 제기합니까? –
이것은 같은 질문이 아닙니다. 다른 질문은 왜 이러한 결과가 나오는 것입니까? 이 질문은 이제 예상 결과를 얻으려면 어떻게해야합니까? StackOverflow는 포럼이 아니기 때문에 질문을 수정하고 변형하면 다른 질문을 읽은 사람들이 대답하지 않을 것이라고 생각하기 때문에 다른 질문을 더 선호합니다. –