有没有一种方法可以删除基于两个字段的重复记录?

我有一个可以让人们注册体育赛事的系统。在表中:

event_registrations
• 唯一身份
•事件名称
•id(人的身份证号)
• 名和姓

一个人可以申请许多活动-ID可能重复
一个事件可能有多个参与者-事件名称可能重复:

--Johnsmith--  --Mountain Cycle--
--Johnsmith--  --Marathnon Walk--

--Linda--      --Mountain Cycle--
--Johnsmith--  --Mountain Cycle--


但是某人可能无法注册他们已经注册的活动:

--Johnsmith--   --Mountain Cycle--
--Johnsmith--   --Mountain Cycle--


他们通过表单选择事件名称。然后,表单数据及其用户详细信息存储在表event_registrations中。

任何帮助,将不胜感激

最佳答案

首先删除重复的(eventname, id)组合的任何行。

然后添加UNIQUE约束:

ALTER TABLE yourTable
  ADD CONSTRAINT eventname_person_Unique
    UNIQUE INDEX eventname_id_U
       (eventname, id) ;


添加注册的表单应进行相应调整,以处理当重复行被拒绝时从MySQL中收到的错误。

关于php - 选择从字段3到字段4的唯一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7598909/

10-09 00:53