仅更新具有唯一 ID 的记录
Update only records that have a unique id
仅当该 ID 只有一条记录时,我才需要更新 table 中的记录。如果已经有不止一条记录,我还需要插入记录。
UPDATE survey, survey_errors
SET survey.depth = survey_errors.max_depth
WHERE survey.depth=-1
AND survey.hole_id=survey_errors.hole_id
AND survey_errors.max_depth Is Not Null
但是现在如何确定 survey.hole_id 是否唯一?
按照您的要求,通过这种方式可以找到uniqueId
:
SELECT
col1, col2
FROM
YourTable
GROUP BY
col1, col2
HAVING
COUNT(*) = 1
或
可以简单的使用DISTINCT
。它将 return 为您提供没有重复的结果。
SELECT DISTINCT col1, col2
FROM YourTable
和
更新应该是这样的(这将只更新唯一值):
UPDATE TblName
SET Anything = Anything2
WHERE Anything IN (
SELECT
Anything
FROM
TblName
GROUP BY
Anything
HAVING
COUNT(*) =1
)
仅当该 ID 只有一条记录时,我才需要更新 table 中的记录。如果已经有不止一条记录,我还需要插入记录。
UPDATE survey, survey_errors
SET survey.depth = survey_errors.max_depth
WHERE survey.depth=-1
AND survey.hole_id=survey_errors.hole_id
AND survey_errors.max_depth Is Not Null
但是现在如何确定 survey.hole_id 是否唯一?
按照您的要求,通过这种方式可以找到uniqueId
:
SELECT
col1, col2
FROM
YourTable
GROUP BY
col1, col2
HAVING
COUNT(*) = 1
或
可以简单的使用DISTINCT
。它将 return 为您提供没有重复的结果。
SELECT DISTINCT col1, col2
FROM YourTable
和
更新应该是这样的(这将只更新唯一值):
UPDATE TblName
SET Anything = Anything2
WHERE Anything IN (
SELECT
Anything
FROM
TblName
GROUP BY
Anything
HAVING
COUNT(*) =1
)