更改记录时在mysql/php中构造查询

更改记录时在mysql/php中构造查询,mysql,Mysql,我正在使用php和mysqli。我有一个表,它有瞳孔id、瞳孔条件和主键 瞳孔情况显示为一系列约8个复选框 对于一个id为10的学生,我可能有以下三项记录: p_id, p_c, pk 10, 5, 6 10, 3, 7 10, 7, 8 现在,用户更改瞳孔条件框的选择 目前,我正在删除该学生的所有现有记录,并插入新闻记录。这是可行的,但似乎很笨拙 我想了一下: if (record exists) {skip} elseif (record exists but n

我正在使用php和mysqli。我有一个表,它有瞳孔id、瞳孔条件和主键

瞳孔情况显示为一系列约8个复选框

对于一个id为10的学生,我可能有以下三项记录:

p_id, p_c, pk
10,   5,   6
10,   3,   7
10,   7,   8
现在,用户更改瞳孔条件框的选择

目前,我正在删除该学生的所有现有记录,并插入新闻记录。这是可行的,但似乎很笨拙

我想了一下:

if (record exists)
 {skip}
elseif (record exists but not in new selection)
 {delete}
elseif (record doesn't exisit)
 {insert}

是否有一些我不知道的查询类型会对此有所帮助?

您可以这样做:
从p\u id=10且p\u c不在[id\u of\u checked\u conditions]的表中删除

这必须删除p_id=10的所有行以及不再为此瞳孔检查的条件(条件id)


INSERT
语句,在delete之后插入所有选中的。(您可以在
p\u id
p\u c
上创建唯一索引,这样就不会出现重复行)

更新“表”,其中…谢谢-对于删除查询非常有效。看不到如何避免插入重复记录-认为这就是MaggsWeb的答案所在???