mysql - SQL:如何更新具有唯一值的列
问题描述
下面是一个 MySQL 查询:
SELECT
COUNT(*) AS counted, employer_group
FROM
employer_survey
GROUP BY employer_group
HAVING counted > 1;
在我将表定义更改为employer_group
唯一之前,我需要为to的值创建一条UPDATE
语句,以便更改表不会因为值而失败。CONCAT()
created_dt
employer_group
我该怎么做呢?我无法返回id
列,因为我正在使用GROUP BY
and HAVING
。
我应该提到我希望id
返回该列,因此我可以在我的语句中使用上面SELECT
的IN
子句UPDATE
。这可能不是最好的方法。
解决方案
你可以这样做join
:
update employer_survey es join
(select es2.employer_group
from employer_survey es2
group by es2.employer_group
having count(*) > 1
) eg
on es.employer_group = eg.employer_group
set es.employer_group = concat_ws(' ', es.employer_group, es.created_dt);