将重复选择变成更新
Turning a duplicate selection into an update
我已经 select 通过以下方式获得了每条重复记录的计数和 ID:
select T1.ID,T2.Count
from MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField
这 returns 我想更新的记录的 ID (T1.ID
) 和我想用 (T2.Count
) 更新 CountField 的值。
只是不确定在走到这一步后如何更改为更新。
如果你有 select 你已经通过这种方式更新
UPDATE MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
SET T1.ID = T2.Count
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
我想在办公室度过了漫长的一天,但这很容易解决。我认为第一个 select 让我失望,直到我意识到我需要完全摆脱它,因为我不是 selecting 而是更新:
Update MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField
Set T1.CountField=T2.Count
我已经 select 通过以下方式获得了每条重复记录的计数和 ID:
select T1.ID,T2.Count
from MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField
这 returns 我想更新的记录的 ID (T1.ID
) 和我想用 (T2.Count
) 更新 CountField 的值。
只是不确定在走到这一步后如何更改为更新。
如果你有 select 你已经通过这种方式更新
UPDATE MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
SET T1.ID = T2.Count
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
我想在办公室度过了漫长的一天,但这很容易解决。我认为第一个 select 让我失望,直到我意识到我需要完全摆脱它,因为我不是 selecting 而是更新:
Update MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable
where Field_C=X
and Field_S=Y
group by NumberField,NameField having count(*)>1) T2
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField
Set T1.CountField=T2.Count