如何从我的sql数据库中删除额外的记录并且只有1行,

时间:2011-10-31 14:42:36

标签: c# asp.net mysql

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

我有这个表,我在代码的不同部分更新

这里有三个用于用户ID 33的MsgID 5条目。我想只有一行用于msgid 5的用户ID 33.如何删除用户ID 33的记录,这样我只有1条记录33。

我正在使用MySql

3 个答案:

答案 0 :(得分:1)

标记,您可以使用IGNORE关键字添加唯一键,例如 -

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

它将创建新的唯一键,并使用一个命令从表中删除所有重复项。

更多信息 - ALTER TABLE Syntax

答案 1 :(得分:0)

您可以为simpliticy创建一个新表(稍后重命名)并将列设置为唯一,然后只需

INSERT IGNORE new_table
SELECT *
FROM old_table

答案 2 :(得分:-1)

在你的代码中“插入”之前,你应该检查是否有一行有用户ID 33和MsgID 5,如果有这样的行,你应该使用它而不是插入新行。