@variables
nejsou DECLARED
.
Buď:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
nebo
SELECT @user_same := 1 WHERE ...
A co je ještě lepší, vyhnete se tak potřebě proměnné.
IF (EXISTS SELECT * FROM ...)
Také nepoužívejte konstrukci IN ( SELECT ... )
; obvykle je lepší použít WHERE EXISTS ( SELECT * FROM ... )
nebo JOIN ... ON ...
.
(Po opravě mohou nastat další problémy.)