我有一个大阵列。是否有另一种方法可以检查MySql表$value
中是否存在数组中的vote
,如果没有,则将$value
插入vote
。这就是我目前正在做的事情。有更好的方法吗?
foreach($rowids as $value) {
$select = mysql_query("SELECT voteid FROM vote WHERE username='$username' AND voteid='$value' LIMIT 1",$this->connect);
if(mysql_num_rows($select)==0) {
$insert = mysql_query("INSERT INTO vote VALUES ('','$value','$username')",$this->connect);
}
}
答案 0 :(得分:4)
如果您在(value,username)
上加UNIQUE INDEX,那么可以使用INSERT IGNORE:
INSERT IGNORE INTO vote (foo,voteid,username) VALUES ('','$value','$username')
添加UNIQUE INDEX:
ALTER TABLE vote ADD UNIQUE INDEX idx (voteid,username)
如果vote
中存在违反UNIQUE INDEX的“重复”行,则会失败。删除重复行并同时添加UNIQUE INDEX:
ALTER IGNORE TABLE vote ADD UNIQUE INDEX idx (voteid,username)