@variables
ne sont pas DECLARED
.
Soit :
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
ou
SELECT @user_same := 1 WHERE ...
Mieux encore, cela évite d'avoir besoin de la variable.
IF (EXISTS SELECT * FROM ...)
N'utilisez pas non plus la construction IN ( SELECT ... )
; il est généralement préférable d'utiliser WHERE EXISTS ( SELECT * FROM ... )
ou JOIN ... ON ...
.
(Il peut y avoir plus de problèmes après les avoir corrigés.)