【发布时间】:2013-06-20 22:13:08
【问题描述】:
参考: SET user defined variable in mysql return null?
我测试了以下代码:
SET @rank=0;
SELECT *, @rank:=@rank+1 AS rank FROM points
对于 PhpMyAdmin 中的 points,它会返回:
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 似乎为此查询使用了两个连接。如何将应用程序设置为单个连接,以免丢失变量值?
【问题讨论】:
-
您是否使用了“执行所有语句”命令?我在这里尝试过,效果很好。您也可以在 forums.webyog.com 上创建一个帖子以获得进一步的帮助。
-
我在 SQLyog (v11) 上得到了同样的错误行为。以下是如何重现它:
SET \@year := 2014; SELECT \@year as Year;年份将返回 NULL。 -
关于我上面的评论 - 只需从“\@year”中删除“\”符号。
-
好像和设置变量的模式有关。
标签: mysql sql database phpmyadmin sqlyog