Переменные установки SQLYog для MySQL возвращают значение null

Ссылка: определяемая пользователем переменная SET в mysql возвращает значение null?

Я протестировал следующий код:

SET @rank=0;
SELECT *, @rank:=@rank+1 AS rank FROM points

Для баллов в PhpMyAdmin возвращается:

id | user_id | points | rank
-----------------------------
2  | 133845  | 220    | 1
4  | 134084  | 220    | 2
5  |      1  | 150    | 3
7  | 134086  | 145    | 4


ОДНАКО в SQLYog все ранги возвращаются как "NULL". Я проверил свои конфигурации и установил время ожидания на 28800 секунд и отключил протокол сжатия. MySQL, кажется, остается на одном сеансе, но SQLYog, похоже, использует два соединения для этого запроса. Как я могу настроить приложение на одно соединение, чтобы не потерять значения переменных?


person Travis    schedule 20.06.2013    source источник
comment
Вы использовали команду «Выполнить все операторы»? Я попробовал это здесь, и это работает нормально. Также вы можете создать сообщение на forums.webyog.com для получения дополнительной помощи.   -  person Jan S    schedule 21.06.2013
comment
Я получаю такое же ошибочное поведение на SQLyog (v11). Вот как это воспроизвести: ‹code›SET \@year := 2014; ВЫБЕРИТЕ \@year as Year;‹/code› Год вернет NULL.   -  person userfuser    schedule 22.04.2015
comment
По поводу моего комментария выше - просто уберите знак \ с \@year.   -  person userfuser    schedule 22.04.2015
comment
Похоже, это связано с шаблоном установки переменной.   -  person Travis    schedule 25.01.2016


Ответы (1)


Несколько запросов в одном экземпляре. Они складываются в отдельные экземпляры.

Как предлагает Ян, команда «Выполнить все операторы» должна помочь.

person tfont    schedule 25.01.2016