私は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;
: 最初(@v1:[email protected]) is not null
と
(@v2:=2) is not null
後ので、結果がでなければなりません:
@v1 | @v2
---------
0 | 2
このクエリを参照してください。
しかしこれはそうではありません。このクエリを試してください:
@v1 | @v2
---------
2 | 2
なぜですか?