为人员创建唯一参考但按帐户分组

时间:2015-09-23 11:02:08

标签: mysql reference unique

我正在尝试为每个人附加到帐户生成一个唯一的引用。这是在MySQL SELECT语句中。通常情况下,由于我对人和帐户都有一个独特的参考,我只是将它们连接起来。但是,我被限制在0到9999的范围内,所以我需要创建一个在帐户级别唯一的引用。

我创建了以下内容:

    SELECT @n := @n + 1 n,
    ID,
    NAME
    FROM table1, (SELECT @n := 0) m
    ORDER BY ID,NAME

提供以下内容:

   1    1027000001  Mr a
   2    1027000001  Mr b
   3    1027000001  Mr c
   4    1062000001  Mr d
   5    1062000001  Mr e

但我真正想要的是:

   1    1027000001  Mr a
   2    1027000001  Mr b
   3    1027000001  Mr c
   1    1062000001  Mr d
   2    1062000001  Mr e

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

你很接近,但是要使变量获得增量,你需要检查previous ID是否与current ID相同

select 
r,ID,NAME from (
 select 
 @rn:= if(@prev_id = ID, @rn+1,1) as r,
 ID,
 NAME,
 @prev_id:= ID
 from table1 , (select @rn:=0,@prev_id:= null)x
 order by ID
)x