







|
MySQL.RU - Webboard
Вернуться
Оператор присваивания с групповыми функциями (Alex) 17/01/2011 - 16:28:26
Re: Оператор присваивания с групповыми функциями (Awful85) 26/01/2011 - 19:01:54
From: Alex - 17/01/2011 - 16:28:26
Subject:Оператор присваивания с групповыми функциями
-----------------
В доке есть пример использования оператора присваивания:
http://dev.mysql.com/doc/refman/5.1/en/extensions-to-ansi.html
mysql> SELECT @a:=SUM(total),@b:=COUNT(*),@a/@b AS avg FROM test_table;
Однако как ни пытаюсь его реализовать, отказывается этот пример работать:
mysql> select @s:=sum(id),@c:=count(*),@a:=@s/@c as avg from users;
+-------------+--------------+------+
| @s:=sum(id) | @c:=count(*) | avg |
+-------------+--------------+------+
| 361 | 21 | NULL |
+-------------+--------------+------+
Если второй раз выполнить запрос в той же сессии, то результат уже отобразится:
mysql> select @s:=sum(id),@c:=count(*),@a:=@s/@c as avg from users;
+-------------+--------------+--------------+
| @s:=sum(id) | @c:=count(*) | avg |
+-------------+--------------+--------------+
| 361 | 21 | 17.190476190 |
+-------------+--------------+--------------+
Такое впечатление, что сперва полностью выполняется запрос и только после этого переменной присваивается значение.
Замечено, что если применять оператор присваивания без групповых функций, вопросов никогда не возникает.
Баг ли это?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37887
|
|