【发布时间】:2020-11-22 03:00:44
【问题描述】:
我们有一个表(我们称之为originalTbl),其中包含我们要删除的重复条目。重复是指除了 AUTO INCREMENT 索引字段之外的所有值都是相同的。一种方法是创建一个新表,就像现有表一样(我们称之为uniqueTbl),然后进行如下查询:
INSERT INTO uniqueTbl (non-Index-field_1, non-Index-field_2, …, non-Index-field_n)
SELECT DISTINCT non-Index-field_1, non-Index-field_2, …, non-Index-field_n FROM originalTbl;
稍后我们将删除 originalTbl 并将 uniqueTbl 重命名为 originalTbl。
但是,我正在寻找一种替代方法,它将直接从 originalTbl 中删除重复条目,而无需先创建 uniqueTbl 然后将其重命名为 originalTbl 的开销。
【问题讨论】:
-
您的方法将比删除原始表中的条目快得多——除非您的重复项很少。
标签: mysql sql duplicates mariadb sql-delete