所以,我有一个insert语句,用于通过implode()数组将数据插入到我的数据库中
$sql->prepared("INSERT INTO student(studentId,studentemail,phone,address)VALUE".implode(',', array());
问题是我每次运行脚本时都要从数据库中删除每一行,因为我的数组已经存储了数据库中的值加上我要插入的新值。所以,我想实现一个查询,如果存在,请不要插入。我不知道怎么玩它。
答案 0 :(得分:1)
您可以使用insert on duplicate key
。首先,您需要一个独特的索引。我在猜测:
create unique index unq_student_studentid on student(studentid);
insert into student (studentId, studentemail, phone, address)
value . . .
on duplicate key studentid = values(studentid);
这将忽略现有数据。如果您更喜欢较新的值,也可以使用相同的方法更新其他字段。
也就是说,每次插入数据似乎都是设计糟糕的应用程序。
答案 1 :(得分:1)
在studentid
上创建一个唯一索引(它可能应该已经是主键),然后使用INSERT IGNORE
而不是普通INSERT
。这只是跳过任何违反唯一约束的行。