Le problème est que vous ne pouvez pas mélanger select et set dans une instruction, il y aura sûrement une erreur de syntaxe :
select*from t where 1 and example@sqldat.com=1;
Si vous voulez faire set dans select , utilisez les deux-points sont égaux
syntaxe. Modifiez ceci :
select*from t where 1 and example@sqldat.com=1;
dans :
select*,@a:=1 from t where 1;
Voici comment vous mettez à jour la variable sur chaque ligne :
create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;
Et vous pouvez même faire concat :
example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;
Ou concat sans le 0 de tête :
example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;
Cependant, le manuel explicitement déclare que c'est dangereux :
Cela a également été mentionné sur Xaprb .
Enfin, si vous faites de l'excentrique des choses comme l'attribution de différents types de valeurs à la variable et etc, checkout le manuel pour être sûr que vous comprenez les mécanismes complexes.