Il problema è che non puoi combinare select e set in una dichiarazione, ci sarà sicuramente un errore di sintassi:
select*from t where 1 and example@sqldat.com=1;
Se vuoi fare set all'interno di select , usa i due punti corrispondono a
sintassi. Cambia questo:
select*from t where 1 and example@sqldat.com=1;
in:
select*,@a:=1 from t where 1;
Ecco come aggiornare la variabile su ciascuna riga:
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
E puoi anche fare concat :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Oppure concat senza il 0 iniziale :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Tuttavia, il manuale esplicitamente afferma che questo è pericoloso:
Questo è stato anche menzionato su Xaprb .
Infine, se stai facendo eccentrico cose come assegnare diversi tipi di valore alla variabile e così via, checkout il manuale per essere sicuro di aver compreso gli intricati meccanismi.