No, non sono proprio uguali ... ma potrebbero essere visti come gli stessi a seconda del contesto utilizzato.
Spiegherò. MySQL ha variabili di sessione, queste sono le variabili che si assegnano dal vivo fino al termine della sessione (si pensi a una variabile di connessione). Queste variabili sono dichiarate con un simbolo @
. Così si potrebbe eseguire queste due affermazioni e funzionerà:
SET @myId := 123;
SELECT * FROM table
WHERE id = @myId;
Quando si crea stored procedure e si utilizza dichiarare le variabili sono nel campo di applicazione di tale procedura, ad esempio
DECLARE myId INT;
SELECT id INTO myId FROM table
WHERE name = 'steve';
+1 per i duplicati - dovrebbe essere controllato prima di digitare una risposta – Steve