Problemet är att du inte kan blanda select och set i en sats kommer det säkert att finnas syntaxfel:
select*from t where 1 and example@sqldat.com=1;
Om du vill göra set inom select , använd kolonet är lika med
syntax. Ändra detta:
select*from t where 1 and example@sqldat.com=1;
till:
select*,@a:=1 from t where 1;
Så här uppdaterar du variabeln vid varje rad:
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
Och du kan till och med göra concat :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Eller concat utan den inledande 0 :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Men manualen uttryckligen anger att detta är farligt:
Detta har också nämnts på Xaprb .
Slutligen, om du gör konstiga saker som att tilldela olika värdetyper till variabeln och etc, checkout manualen för att vara säker på att du förstår de invecklade mekanismerna.