select*,@a:=1 from t where 1;
:
に select*from t where 1 and [email protected]=1;
:これを変更大手0
なし
[email protected]='0';
select @a:=concat(@a,',',id)from t;
+-----------------------+
| @a:=concat(@a,',',id) |
+-----------------------+
| 0,1 |
| 0,1,2 |
| 0,1,2,3 |
+-----------------------+
またはconcat
:しかし
[email protected]='';
select @a:=concat(@a,if(@a='','',','),id)from t;
+------------------------------------+
| @a:=concat(@a,if(@a='','',','),id) |
+------------------------------------+
| 1 |
| 1,2 |
| 1,2,3 |
+------------------------------------+
、これは危険であることを手動明示的状態:これもされてい
...you should never assign a value to a user variable and read the value within the same statement...
...you might get the results you expect, but this is not guaranteed.
...the order of evaluation for expressions involving user variables is undefined.
言及したon Xaprb。
最後に、気味悪い変数に異なる値の種類を割り当てるなど、複雑なメカニズムを理解していることを確認する場合は、checkout the manualなどがあります。
by_ids INT('10 '、'11') 'から' by_ids IN('10 '、' 11 ') 'になりますか? – fedorqui
WHERE句でなぜ 'AND AND @rejects = CONCAT(@rejects、 '、'、src)'を設定するのですか? –
それは私が望むもの、私は@rejects変数に検索された各srcの値をconcatしたい。 –