Пользовательские переменные, сложение, count(*)
1)[sql]select @a:=0; select @a:=@a+count(*), count(*) from user group by `user`;[/sql]
2)[sql]select @a:=0; select @a:=@a+0+count(*), count(*) from user group by `user`;[/sql]
Объясните plz, почему так получается. Подозреваю, что, когда я указываю +0, происходит приведение типа, но все же интересно знать точно. Кстати, если group by по int полю, +0 необязательно... Странно, разве тип выражения count(*) имеет отношение к типу поля?
mysql 4.0.16, экспериментировал на таблице user базы mysql, которая точно у всех есть
1)[sql]select @a:=0; select @a:=@a+count(*), count(*) from user group by `user`;[/sql]
Код:
+-----------------+----------+
| @a:=@a+count(*) | count(*) |
+-----------------+----------+
| 2 | 2 |
| 1 | 1 |
| 1 | 1 |
...
Код:
+-------------------+----------+
| @a:=@a+0+count(*) | count(*) |
+-------------------+----------+
| 2 | 2 |
| 3 | 1 |
| 4 | 1 |
...
mysql 4.0.16, экспериментировал на таблице user базы mysql, которая точно у всех есть