【发布时间】:2017-03-08 08:08:18
【问题描述】:
我有一张这样的桌子
CREATE TABLE IF NOT EXISTS users_groups(
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT(11) UNSIGNED NOT NULL,
name VARCHAR(250) NOT NULL,
is_deleted BOOLEAN NOT NULL DEFAULT false,
creation_date DATETIME NOT NULL,
last_modification_date DATETIME NOT NULL,
PRIMARY KEY (id)
);
我想将列 (user_id, name) 设为唯一,但我遇到的问题是我已经在这些列中有重复项。在某些情况下,这些列会重复多次。
我想编写一个查询来更新连接名称中某些值的重复行,例如连接第一个重复的“*”第二个重复的“**”等等。
这样可以写查询吗?
我可以得到我想要修改的组,但我不确定是否可以用mysql实现我想要的
select users_groups.id, users_groups.user_id, users_groups.name
from users_groups
inner join (select user_id, name, count(*) from users_groups group by user_id, name having count(*) > 1) as u on u.user_id = users_groups.user_id
where users_groups.name = u.name;
【问题讨论】:
标签: mysql