代码之家  ›  专栏  ›  技术社区  ›  solkim

MySQL递归计数()

  •  0
  • solkim  · 技术社区  · 16 年前

    我有一个关于递归计数的问题,它在sql server中工作得很好,但是我不能在mysql中使用它。

    在SQL Server中,我曾经使用:

    SELECT
    @Param= not_unique_id,
    (Select Count(not unique id) FROM TABLE0 WHERE not_unique_id=@Param)
    FROM Table0 WHERE .....
    

    这将给我:
    1 2
    1 2
    2 1
    3 3
    3 3
    3 3

    这将提供每个当前行id的id数作为参数

    在mysql中,我也这样做:

    SELECT
    Param=not_unique_id,
    

    (返回null,此处不允许设置)

    (Select Count(not unique id) FROM TABLE0 WHERE not_unique_id=Param)
    FROM Table0 WHERE .....
    

    这将给我:
    零零点
    零零点
    零零点
    零零点
    零零点
    零零点

    或者,我试着: 在mysql中,我也这样做:

    SELECT
    not_unique_id,
    (Select Count(not unique id) FROM TABLE0 WHERE not_unique_id=not_unique_id)
    FROM Table0 WHERE .....
    

    这将给我:
    1 3
    1 3
    2 3
    3 3
    3 3
    3 3

    这将给我整个记录的唯一计数

    你知道在mysql中怎么做吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Patrick    16 年前

    在mysql中赋值时不要忘记 :=

    SELECT @Param:=not_unique_id,
    (
     SELECT Count(not_unique_id)
     FROM TABLE0
     WHERE not_unique_id=@Param
    )
    FROM Table0 WHERE .....
    

    或

    SELECT not_unique_id,
    (
     SELECT Count(not_unique_id)
     FROM TABLE0
     WHERE not_unique_id=a.not_unique_id
    )
    FROM Table0 a WHERE .....