显示无法更新mysql的记录

时间:2010-01-18 17:53:01

标签: sql mysql

我正在尝试使用来自另一个表的匹配值来更新我的结果表。虽然,更新,是否有可能显示尚未更新(不匹配)的记录?

BEGIN WORK
UPDATE results, testcases
SET    results.testset = testcases.TestSet
WHERE  results.TestCase = testcases.TestCase

2 个答案:

答案 0 :(得分:0)

立即回答是选择符合WHERE条款的所有条款,但SET结果不是:

SELECT * 
FROM results, testcases
WHERE results.TestCase = testcases.TestCase
  AND resutls.testset <> testcases.TestSet

答案 1 :(得分:0)

我假设你想要这个的原因,而更新是为了避免由于并发更新导致的错误信息。如果不是这样,只需使用显示的查询。

单个查询无法实现。因此,您需要使用事务边界,并查询提示以保持锁定以执行存在查询以查找不匹配的行。

SELECT  *
FROM    Results r
WHERE   NOT EXISTS (
        SELECT  *
        FROM    TestCases t
        WHERE   r.TestCase = t.TestCase
        )