我需要刪除一些「類似」行中的數據庫。如何刪除MYSQL數據庫中的類似重複
barcode name COL3 1234 item1 price10$ 1234 item1 price50$ 5678 item2 price10$
如何從數據庫中刪除#2(50dlls)?
我試着用MIN
,MAX
,DISTINCT
,WHERE
條款但沒有。
我需要刪除一些「類似」行中的數據庫。如何刪除MYSQL數據庫中的類似重複
barcode name COL3 1234 item1 price10$ 1234 item1 price50$ 5678 item2 price10$
如何從數據庫中刪除#2(50dlls)?
我試着用MIN
,MAX
,DISTINCT
,WHERE
條款但沒有。
最簡單的方法是創建一個沒有第一個重複表的新表。然後,您可以刪除舊錶並重命名新表。
create table new_table as
select barcode, name, min(col3) as col3
from old_table
group by barcode, name;
create table new_table as(從old_table選擇條形碼,名稱,min(col3)作爲col3 ;) - 它僅返回第1行 –
可以使用delete
做到這一點:
delete t
from t join
(select barcode, name, min(col3) as mincol3
from t
group by barcode, name)
) tt
on t.barcode = tt.barcode and t.name = tt.name and t.col3 > tt.mincol3 ;
這假定mincol3
是獨一無二的,該表是不是太大。最快的方法很可能是truncate
並重新insert
:
create temporary table tt as
select barcode, name, min(col3) as col3
from t
group by barcode, name;
truncate table t;
insert into t(barcode, name, col3)
select barcode, name, col3
from tt;
這裏是最後的結果。 thx所有。
SELECT COL1,COL2,MIN(COL22)AS 「最低」,COL3,COL4 FROM表1 GROUP BY COL1
現在我有所有產品。重要的「由......組」
這是一團糟。 – Strawberry
是什麼讓你決定刪除#2?爲什麼不#1呢?有規則嗎?或者它沒有關係,我們可以刪除一個或另一個(只有兩個都不行):-)? –
什麼是「50dlls」應該是什麼意思? –