Mysql SQL:如何使用唯一值更新列
下面是一个MySQL查询:Mysql SQL:如何使用唯一值更新列,mysql,sql,Mysql,Sql,下面是一个MySQL查询: SELECT COUNT(*) AS counted, employer_group FROM employer_survey GROUP BY employer_group HAVING counted > 1; 在将created\u group的表定义更改为unique之前,我需要创建一个UPDATE语句,以CONCAT()将created\u dt的值更改为employer\u group,这样更改表不会因为值而失败 我该怎么做?我无
SELECT
COUNT(*) AS counted, employer_group
FROM
employer_survey
GROUP BY employer_group
HAVING counted > 1;
在将created\u group
的表定义更改为unique之前,我需要创建一个UPDATE
语句,以CONCAT()
将created\u dt
的值更改为employer\u group
,这样更改表不会因为值而失败
我该怎么做?我无法返回id
列,因为我正在使用groupby
和have
我应该提到,我希望返回
id
列,以便在UPDATE
语句中使用上述SELECT
和IN
子句。这可能不是最好的方法。您可以通过加入来实现这一点:
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);
您的查询有输入错误。请将“员工组”更改为雇主组
。同样,当我执行时,它影响了936行,但我上面的查询只返回219行。如何修改联接以仅更新219行?没关系。受影响的行数正确。我已更新了您答案中的查询,以更正您的输入错误。