mysql> set @tp:=0;
Query OK, 0 rows affected (0.00 sec)mysql> select sum(QTY) sumqty,@tp,@tp:=@tp+1 from xtest group by QID;
+--------+------+------------+
| sumqty | @tp  | @tp:=@tp+1 |
+--------+------+------------+
|      9 |    0 |          1 |
|      5 |    1 |          2 |
|      1 |    2 |          3 |
|      1 |    3 |          4 |
|      1 |    4 |          5 |
|      1 |    5 |          6 |
|      1 |    6 |          7 |
|      1 |    7 |          8 |
+--------+------+------------+
8 rows in set (0.05 sec)mysql> set @tp:=0;
Query OK, 0 rows affected (0.00 sec)mysql> select sum(QTY) sumqty,@tp,@tp:=@tp+sum(QTY) from xtest group by QID;
+--------+------+-------------------+
| sumqty | @tp  | @tp:=@tp+sum(QTY) |
+--------+------+-------------------+
|      9 |    0 |                 9 |
|      5 |    9 |                14 |
|      1 |   14 |                15 |
|      1 |   15 |                16 |
|      1 |   16 |                17 |
|      1 |   17 |                18 |
|      1 |   18 |                19 |
|      1 |   19 |                20 |
+--------+------+-------------------+
8 rows in set (0.02 sec)按照你说的,在我机器上试验没有错误啊,就像你预期的一样。

解决方案 »

  1.   

    我在windows下和linux下都试过了,没有像你的情况出现。
      

  2.   

    我用的是4.0.13——LINUX版本
    结果和(喜欢JAVA)一样
      

  3.   

    我这里的MYSQL版本是:
    mysql  Ver 12.20 Distrib 4.0.13, for pc-linux (i686)
    不知道是否是因为版本的问题
      

  4.   

    我测试的是3.23.57 windows版和3.23.54 linux版
      

  5.   

    呵呵,这应该是一个 BUG 吧,
    等杀了那可恶的"木马"我再细想一下!唉,MM 没见到,来了个木马
    晕死~~~~~
    呜呜, 中了木马了, 大家来 874 他!!! 如何将它给查出来,并杀了它?? -- 犬犬(心帆)
    http://expert.csdn.net/Expert/TopicView3.asp?id=2131934
      

  6.   

    我想这个行为应该是 MySQL 的查询优化行为引起的,还没看到 MySQL 官方文档对查询代码有此方面的描述,