替代foreach MySql

时间:2011-10-14 01:13:59

标签: php mysql

我有一个大阵列。是否有另一种方法可以检查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);

            }
        }

1 个答案:

答案 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)