我想从名称匹配的scenario_id = 7更新scenario_id = 1的行。 scheme_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
最佳答案
为了使其在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
关于mysql - 使用同一张表更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17474023/