Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37887



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |