mysql 删除重复记录只保留一条
时间: 2023-07-22 07:01:22 浏览: 57
你可以使用MySQL的DISTINCT关键字来去重,例如:
```
DELETE FROM your_table
WHERE id NOT IN (
SELECT * FROM (
SELECT MIN(id) FROM your_table GROUP BY column_name
) AS tmp
);
```
其中,your_table是你要删除重复记录的表名,column_name是你想去重的列名。
这个SQL语句会保留每个column_name值最小的一条记录,并删除其它重复记录。
相关问题
MySQL删除重复记录并保留第一条
可以使用以下语句来删除MySQL中的重复记录并保留第一条:
```
DELETE FROM your_table
WHERE id NOT IN (SELECT MIN(id) FROM your_table GROUP BY column1, column2, column3);
```
其中,your_table是需要删除重复记录的表名,column1、column2、column3是组合在一起判断重复记录的列名,id是主键或唯一标识符,用于保留第一条记录。
这个语句会在表中找出所有重复记录,然后删除除了第一条记录外的所有其他记录。
mysql千万级表,删除重复记录只保留一条
可以通过以下步骤删除千万级表中的重复记录,只保留一条:
1. 创建一个临时表格temp_table,用于存储唯一的记录。
2. 将源数据表中的所有字段复制到temp_table中。
3. 通过SELECT DISTINCT语句从源数据表中选出唯一的记录,并将其插入到temp_table中。
4. 删除源数据表。
5. 将temp_table重命名为源数据表的名称。
下面是一个示例SQL语句,可以实现这个功能:
```
CREATE TABLE temp_table LIKE source_table;
INSERT INTO temp_table SELECT DISTINCT * FROM source_table;
DROP TABLE source_table;
ALTER TABLE temp_table RENAME TO source_table;
```
需要注意的是,在执行这个操作之前,需要先备份好源数据表。因为这个操作会删除源数据表中的所有数据。