Problemet er, at du ikke kan blande select og set i en sætning vil der helt sikkert være syntaksfejl:
select*from t where 1 and example@sqldat.com=1;
Hvis du vil gøre set inden for select , brug kolonet er lig med
syntaks. Skift dette:
select*from t where 1 and example@sqldat.com=1;
ind i:
select*,@a:=1 from t where 1;
Sådan opdaterer du variablen ved hver række:
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
Og du kan endda gøre concat :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Eller concat uden den indledende 0 :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Men manualen eksplicit oplyser, at dette er farligt:
Dette er også blevet nævnt på Xaprb .
Til sidst, hvis du laver quirky ting som at tildele forskellige værdityper til variablen osv., checkout manualen for at være sikker på at du forstår de indviklede mekanismer.