为个人创建唯一参考但按帐户分组
Create Unique Reference for person but grouped by account
我正在尝试为每个附加到帐户的人生成一个唯一的参考。这是在 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
感谢您提供的任何帮助。
你很接近,但要使变量获得增量,你需要检查 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
我正在尝试为每个附加到帐户的人生成一个唯一的参考。这是在 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
感谢您提供的任何帮助。
你很接近,但要使变量获得增量,你需要检查 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