@variables
DECLARED
ではありません 。
どちらか:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
または
SELECT @user_same := 1 WHERE ...
さらに良いことに、これにより変数が不要になります。
IF (EXISTS SELECT * FROM ...)
また、コンストラクトIN ( SELECT ... )
は使用しないでください。;通常は、WHERE EXISTS ( SELECT * FROM ... )
を使用することをお勧めします。 またはJOIN ... ON ...
。
(それらを修正した後、さらに問題が発生する可能性があります。)