如何获得具有特定规格的一对行的两个ID?
更具体:
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
答案 0 :(得分:0)
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上查看。
答案 1 :(得分:0)
您可以从此查询中获取ID
从tbl a中选择a.id id, tbl b 哪里 a.spec2 = b.spec2和 isnull(a.spec1)和isnull(b.spec1)和 a.id!= b.id;