刪除數據庫中重復字段且特定列為空的行
在數據庫中刪除重復字段且特定列為空的行,可使用以下查詢語句:
DELETE FROM datas WHERE pid IS NULL AND (credit, company, name, phone, id) IN ( SELECT credit, company, name, phone, id FROM datas WHERE pid IS NOT NULL );
登錄后復制
查詢說明:
- datas 為目標表。
- pid 為待檢查的特定列。
- (credit, company, name, phone, id) 為重復字段組合。
刪除過程:
- 該查詢首先從 datas 表中選擇所有 pid 為 null 的行。
- 然后,它從子查詢中選擇所有 pid 不為 null 的行的重復字段組合(credit、company、name、phone、id)。
- 通過將主查詢中的行與子查詢中返回的值進行匹配,該查詢標識出需要刪除的行。
- 它僅刪除那些 pid 為 null 并且具有與子查詢中返回的值相同的重復字段組合的行。
這樣做可以刪除具有相同重復字段組合但 pid 為 null 的行,同時保留具有相同重復字段組合但 pid 不為 null 的行。