mysql 根据字段删除其他重复数据,只保留一条
时间: 2023-07-22 11:30:09 浏览: 186
您可以使用以下 SQL 语句来删除表中除了指定字段外的其他重复数据,只保留一条:
```
DELETE FROM your_table
WHERE id NOT IN
(SELECT MIN(id)
FROM your_table
GROUP BY your_field);
```
其中,`your_table` 为要操作的表名,`your_field` 为要保留的字段名,`id` 为表中的主键或唯一键,用于辨别数据的唯一性。这条 SQL 语句会在保留每个 `your_field` 字段的最小 `id` 值之外,删除其他重复数据。
相关问题
mysql 根据字段删除其他重复数据,只保留一条,没有唯一标识
如果没有唯一标识,您可以考虑使用以下 SQL 语句来删除表中除了指定字段外的其他重复数据,只保留一条:
```
DELETE t1 FROM your_table t1, your_table t2
WHERE t1.your_field = t2.your_field
AND t1.id > t2.id;
```
其中,`your_table` 为要操作的表名,`your_field` 为要保留的字段名,`id` 为表中的主键或其他唯一标识。这条 SQL 语句会在保留每个 `your_field` 字段的最小 `id` 值之外,删除其他重复数据。
mysql 根据连表多个字段查询重复数据并删除重复数据最后保留一条
可以使用以下 SQL 语句来删除重复数据并保留一条:
```sql
DELETE t1 FROM table_name t1
INNER JOIN table_name t2
WHERE
t1.id > t2.id AND
t1.field1 = t2.field1 AND
t1.field2 = t2.field2;
```
其中 `table_name` 是你要查询的表名,`id` 是该表的主键字段,`field1` 和 `field2` 是你要根据其进行去重的字段,你需要将它们替换成你实际使用的字段名。
这条 SQL 语句的作用是将 `table_name` 表中 `field1` 和 `field2` 字段相同的重复数据删除,只留下 `id` 值最小的一条数据。
阅读全文