我有一个表单,用户可以在其中输入tag1,tag2,tag3等标签。我将这些信息分解并将它们插入表格中:逐个标记。表中的每个标记都有唯一的id(用于引用),vid_id(用于匹配视频)和名称(例如tag1)。
我想要的行为是,如果有人在表中有这3个标签,然后重新提交带有tag1的表单,则tag2用于相同的vid_id,tag3将从表中删除。我只想到一种最有效地做到这一点的方法,我想在每次迭代时运行一个select语句,或者只是删除该vid_id的所有标签并重新插入tag1,tag2,但这似乎效率低下。有人有什么好主意吗?
$variable=explode(',',$_POST['tags']);
foreach($variable as $tag) {
$id=md5(uniqid());
if ($tag!=''){
$sql="INSERT into tags (id,vid_id,name) VALUES (?,?,?)";
$stmt16 = $conn->prepare($sql);
$result=$stmt16->execute(array($id,$vid_id,$tag));
}
}
答案 0 :(得分:1)
我不完全理解这个问题。可能对您有所帮助的部分:不在SQL语法中:
DELETE FROM tags
WHERE tags.name NOT IN ('tag1', 'tag2', 'tag3')
和REPLACE语句:http://dev.mysql.com/doc/refman/5.0/en/replace.html