Het probleem is dat je select . niet kunt mixen en set in één verklaring zal er zeker een syntaxisfout zijn:
select*from t where 1 and example@sqldat.com=1;
Als je set . wilt doen binnen select , gebruik de dubbele punt is gelijk aan
syntaxis. Wijzig dit:
select*from t where 1 and example@sqldat.com=1;
in:
select*,@a:=1 from t where 1;
Zo werkt u de variabele bij elke . bij rij:
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
En je kunt zelfs concat . doen :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Of concat zonder de leidende 0 :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Echter, de handleiding expliciet stelt dat dit gevaarlijk is:
Dit is ook genoemd op Xaprb .
Ten slotte, als je eigenzinnig . doet dingen zoals het toewijzen van verschillende waardetypes aan de variabele en etc, afrekenen de handleiding om er zeker van te zijn dat u de ingewikkelde mechanismen begrijpt.