@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 ... 。
(それらを修正した後、さらに問題が発生する可能性があります。)