Das Problem ist, dass Sie select nicht mischen können und set in einer Anweisung gibt es sicherlich einen Syntaxfehler:
select*from t where 1 and example@sqldat.com=1;
Wenn Sie set tun möchten innerhalb von select , verwenden Sie den Doppelpunkt gleich
Syntax. Ändern Sie dies:
select*from t where 1 and example@sqldat.com=1;
in:
select*,@a:=1 from t where 1;
So aktualisieren Sie die Variable bei jedem Zeile:
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
Und Sie können sogar concat ausführen :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Oder concat ohne die führende 0 :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Allerdings ist das Handbuch ausdrücklich gibt an, dass dies gefährlich ist:
Dies wurde auch erwähnt auf Xaprb .
Schließlich, wenn Sie skurril machen Dinge wie das Zuweisen unterschiedlicher Werttypen zu Variablen usw. checkout das Handbuch um sicherzugehen, dass Sie die komplizierten Mechanismen verstehen.