@variables sind nicht DECLARED .
Entweder:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
oder
SELECT @user_same := 1 WHERE ...
Besser noch, dies vermeidet die Notwendigkeit der Variable.
IF (EXISTS SELECT * FROM ...)
Verwenden Sie auch nicht das Konstrukt IN ( SELECT ... ); es ist normalerweise besser, WHERE EXISTS ( SELECT * FROM ... ) zu verwenden oder JOIN ... ON ... .
(Es können weitere Probleme auftreten, nachdem diese behoben wurden.)