UPDATE directoryData
SET CompanyName = CONCAT(CONCAT(CompanyName, ' '), Town)
WHERE CompanyName in (
SELECT CompanyName
FROM directoryData
GROUP BY CompanyName
HAVING count(CompanyName)>1
)
편집 : 당신은 업데이트가 어디에 체크 값을 변경하는 경우 MySQL #1093 - You can't specify target table 'giveaways' for update in FROM clause에 따라, 엔진이 깨질 수, 맞다는 (첫 번째 지하철 레코드를 업데이트 한 후 두 번째>() 수를 일치하지 않습니다 더 이상 1 절 ...)
다음
,의 다른 방법으로 해보자 :
UPDATE directoryData
SET CompanyName = (
CASE WHEN (
SELECT count(CompanyName)
FROM directoryData
GROUP BY CompanyName
HAVING count(CompanyName)
)
>1
THEN CONCAT(CONCAT(CompanyName, ' '), Town)
ELSE CompanyName
END
)
나는 그것을 시도 할 수없는, 내가 ... 손, 도움이되기를 바랍니다 의해 여기에 쓴
편집 2 :
(이전 솔루션 때문에 MySQL을 작동하지 않습니다) 일회성 작업을 위해 두 개의 테이블을 사용 :
UPDATE directoryData
SET CompanyName = CONCAT(CONCAT(CompanyName, ' '), Town)
WHERE CompanyName in (
SELECT CompanyName
FROM directoryData_CLONED
GROUP BY CompanyName
HAVING count(CompanyName)>1
)