我有一个几千行的表.该表包含两列,name
和email
.我有几个重复的行,例如:
删除所有重复结果的最简单方法是什么?例如,表格的内容为= SELECT name, DISTINCT(email) FROM table
.
您可以通过在另一个表中选择该查询,然后重命名以替换原始表来轻松地完成此操作.
CREATE TABLE `table2` (
`name` varchar(255),
`email` varchar(255),
UNIQUE KEY `email` (`email`));
INSERT INTO `table2` SELECT `name`, DISTINCT(`email`) FROM `table`;
RENAME TABLE `table` TO `table1`;
RENAME TABLE `table2` TO `table`;
Run Code Online (Sandbox Code Playgroud)
请注意,这CREATE
应该调整为您的实际表格格式.我在电子邮件字段中添加了唯一键,作为关于如何首先防止重复的建议.
或者,你可以循环这个
DELETE FROM `table`
WHERE `email` IN (
SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
) LIMIT 1
Run Code Online (Sandbox Code Playgroud)
哪个会删除每个呼叫的一个重复记录.限制的重要性在于不删除任何重复的两行
归档时间: |
|
查看次数: |
2557 次 |
最近记录: |