如何获得对行的某些规格的两个IDS?
更加具体:
id - spec1 - spec2 - spec 3
1 null 30 nov 34
2 null 30 nov 34
3 null 1 dec 35
4 75 1 dec 35
我想更新具有相同的日期;如没有行有SPEC1值行SPEC3。
在这个例子中:我想更新行1和2 - >同日,为SPEC1没有值
我不想更新行3和4 - >同一日期,但第4行有SPEC1值
如何获得对行的某些规格的两个IDS?
更加具体:
id - spec1 - spec2 - spec 3
1 null 30 nov 34
2 null 30 nov 34
3 null 1 dec 35
4 75 1 dec 35
我想更新具有相同的日期;如没有行有SPEC1值行SPEC3。
在这个例子中:我想更新行1和2 - >同日,为SPEC1没有值
我不想更新行3和4 - >同一日期,但第4行有SPEC1值
你可以从这个查询得到的ID(S)
选择从TBL一个,TBL b其中a.spec2 = b.spec2和ISNULL(a.spec1)和ISNULL(b.spec1)和A.ID = b.id a.id ID!;
UPDATE my_table t1
JOIN my_table t2
ON t1.spec1 IS NULL
AND t2.spec1 IS NULL
AND t1.spec2 = t2.spec2
AND t1.id < t2.id
SET t1.spec3 = 123,
t2.spec3 = 456
看到它在sqlfiddle 。