首頁 > 資料庫 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板