SQL:如何使用唯一值更新列

时间:2018-06-18 23:44:59

标签: mysql sql

以下是MySQL查询:

SELECT 
    COUNT(*) AS counted, employer_group
FROM
    employer_survey
GROUP BY employer_group
HAVING counted > 1;

在我将employer_group的表定义更改为唯一之前,我需要创建一个UPDATE语句,以CONCAT() created_dtemployer_group的值,以便alter table不会因为值而失败。

我该怎么做?我无法返回id列,因为我使用的是GROUP BYHAVING

我应该提一下,我希望返回id列,以便我可以在我的SELECT语句中使用上面的INUPDATE子句。这可能不是最好的方法。

1 个答案:

答案 0 :(得分:1)

您可以使用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);
相关问题