0

我想从名称匹配的scenario_id = 7 更新scenario_id = 1 的行。scenario_id 之间的差异不是恒定的。

id|scenario_id|status|name
1 |1          |Passed|testcase_1
2 |1          |Passed|testcase_2
3 |1          |Failed|willPassInNextRun
4 |7          |Passed|testcase_1
5 |7          |Passed|willPassInNextRun

更新后表应如下所示

id|scenario_id|status|name
1 |1          |Passed|testcase_1
2 |1          |Passed|testcase_2
3 |1          |Passed|willPassInNextRun
4 |7          |Passed|testcase_1
5 |7          |Passed|willPassInNextRun
4

2 回答 2

1

要使其在 SQLite 中也能工作,请使用标准 SQL 并使用相关子查询查找新值:

UPDATE MyTable
SET status = COALESCE((SELECT status
                       FROM MyTable AS T2
                       WHERE scenario_id = 7
                         AND T2.name = MyTable.name),
                      status)
WHERE scenario_id = 1
于 2013-07-05T07:44:53.190 回答
0

尝试这个,

update table t1, table t2
 set t1.status=t2.status
 where t2.scenario_id=7 and t1.scenario_id=1
 and t1.name=t2.name
 and t1.status!=t2.status;
于 2013-07-04T15:58:17.197 回答