Sqlite

SQLite3 - 按多列刪除重複項

  • December 6, 2021

我正在尋找從表中刪除重複項的最有效方法,其中 id 是唯一的,但是當您檢查其他列時行數相等。

例子:

id   name   age   x
1   peter   25    II
2   peter   25    II

該表有數万行。

假設您沒有引用該表的外鍵,您可以執行類似的操作

create table some_table as
select min(id), name, age, x
from t
group by name, age, x

然後您可以刪除舊表,重命名新表,使其與之前的舊表具有相同的名稱,並在該表上創建索引和其他您需要的東西。

即使問題是 6 歲

我有類似的需求,我使用了類似的東西

   DELETE 
   FROM t 
   where
   id||name||age 
   NOT IN
   (SELECT
   min(id)||name||age
   FROM t 
   GROUP BY id, name, age)

引用自:https://dba.stackexchange.com/questions/101697