我有一张表如下:
emp_name emp_address sex matial_status
uuuu eee m s
iiii iii f s
uuuu eee m s
Run Code Online (Sandbox Code Playgroud)
我想基于3个字段emp_name,emp_address和sex删除重复的条目.我的结果表(在删除重复之后)应该看起来像 -
emp_name emp_address sex marital_status
uuuu eee m s
iiii iii f s
Run Code Online (Sandbox Code Playgroud)
我无法回想起如何为此编写SQL查询.有人帮忙吗?
我会创建一个新表,在您希望保持唯一的列上具有唯一索引.然后从旧表插入到新表中,忽略有关重复行的警告.最后,我会删除(或重命名)旧表并将其替换为新表.在MySQL中,这看起来像
CREATE TABLE tmp LIKE mytable;
ALTER TABLE tmp ADD UNIQUE INDEX myindex (emp_name, emp_address, sex, marital_status);
INSERT IGNORE INTO tmp SELECT * FROM mytable;
DROP TABLE mytable;
RENAME TABLE tmp TO mytable;
Run Code Online (Sandbox Code Playgroud)
或类似的东西(这是完全未经测试的).