簡體   English   中英

如何從我的sql數據庫中刪除多余的記錄,並且只有1行,

[英]How to delete extra record from my sql database and Have only 1 row,

RowID          MsgID         UserID
1                5            33   
2                5            12
3                5            21
4                5            33   
5                5            33

我有此表,並在代碼的不同部分進行了更新,

這里有三個條目,分別是MsgID 5的用戶ID33。我想為msgid 5的userid 33只保留一行。如何刪除用戶ID 33的記錄,以便我只有33個記錄。

我正在使用MySql

馬克,您可以添加帶有IGNORE關鍵字的唯一鍵,例如-

ALTER IGNORE TABLE table_name
  ADD UNIQUE INDEX UK_table_name (MsgID, UserID);

它將創建一個新的唯一密鑰,並使用一個命令從表中刪除所有重復項。

詳細信息-ALTER TABLE語法

為簡單起見,您可以創建一個新表(稍后重命名)並將列設置為唯一,然后簡單地

INSERT IGNORE new_table
SELECT *
FROM old_table

在代碼中“插入”之前,應檢查是否存在用戶ID為33和MsgID 5的行,如果存在這樣的行,則應使用它而不是插入新的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM