0

如何获得具有特定规格的一对行的两个 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

我想更新具有相同日期的行的 spec3 并且没有任何行具有 spec1 的值。

在此示例中:我想更新第 1 行和第 2 行 -> 相同日期,spec1 没有值

我不想更新第 3 行和第 4 行 -> 相同日期但第 4 行具有 spec1 的值

4

2 回答 2

0

您可以从此查询中获取 id

从 tbl a, tbl b 中选择 a.id id 其中 a.spec2 = b.spec2 and isnull(a.spec1) and isnull(b.spec1) and a.id != b.id;

于 2012-11-30T09:40:26.227 回答
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上查看。

于 2012-11-30T09:36:07.890 回答