我有一张表如下......
我想要对此表进行选择性更新。
如果ID具有“重复条目”且ID的INFO为NULL,则应在NON-NULL元组的FOR_ID字段中更新NULL元组的SERVICE ..
例如: - 660060110是重复条目,而一个是SERVICE - > NM将INFO视为NULL。那么,带有SERVICE的元组的FOR_ID - > IS应该成为NM。虽然660074540具有重复条目但没有NULL INFO。因此,不会发生任何更新。
决赛桌应如下所示:
请帮我解决这个问题。感谢。
答案 0 :(得分:2)
这应该这样做 - 通过将要更新的预期行表(即INFO is NOT NULL
)的表连接到要在公共域上引用的行的派生表(即INFO is NULL
)键,ID
:
UPDATE MyTable mt
INNER JOIN
(
SELECT ID, `SERVICE`
FROM MyTable
WHERE INFO IS NULL
) x
ON x.ID = mt.ID
AND INFO IS NOT NULL
SET mt.FOR_ID = x.`SERVICE`