@variables
är inte DECLARED
.
Antingen:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
eller
SELECT @user_same := 1 WHERE ...
Ännu bättre, detta undviker behovet av variabeln.
IF (EXISTS SELECT * FROM ...)
Använd inte heller konstruktionen IN ( SELECT ... )
; det är vanligtvis bättre att använda WHERE EXISTS ( SELECT * FROM ... )
eller JOIN ... ON ...
.
(Det kan uppstå fler problem efter att ha åtgärdat dem.)