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
答案 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,如果有这样的行,你应该使用它而不是插入新行。