首页 > 数据库 > mysql教程 > 如何从数据库表中删除重复行而不创建新表?

如何从数据库表中删除重复行而不创建新表?

Susan Sarandon
发布: 2024-12-26 22:39:16
原创
444 人浏览过

How to Delete Duplicate Rows from a Database Table Without Creating a New Table?

从表中删除重复行

您寻求一种从数据库表中删除重复行而无需创建单独的表的方法。考虑下表:

id action L11_data
L1_name L1_data L11_data1
L2_name L2_data L11_data2
L3_name L3_data L11_data3
L4_name L4_data L11_data4
L5_name L5_data L11_data1
L6_name L6_data L11_data2
L7_name L7_data L11_data5
L8_name L8_data L11_data1
L9_name L9_data L11_data6
L10_name L10_data L11_data2
L11_name L11_data L11_data7
L12_name L12_data L11_data8
L13_name L13_data L11_data1
L14_name L14_data L11_data6
L15_name L15_data L11_data9

现有重复行

正如您所提到的,该表在每个操作组内的 L11_data 列中包含重复值。您的目标是为每个操作仅保留唯一的 L11_data 值及其对应的数据。

解决方案

假设表具有唯一的 id 字段,您可以执行以下查询:

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY action, L11_data
)
登录后复制

查询细分

  • 外部 DELETE 语句从表中删除行。
  • 嵌套的 SELECT 语句标识操作和 L11_data 的每个唯一组合的最小 ID。
  • WHERE 子句排除 ID 不在最小 ID 列表中的行,从而删除重复的行

注释

  • 如果表有大量字段和行,查询将运行缓慢。
  • 如果Table没有唯一索引,出于性能考虑,建议添加一个。

以上是如何从数据库表中删除重复行而不创建新表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板