在mulitple列值上避免重复MySQL

lol*_*ter 2 php mysql insert duplicates

我一直在发现自己编写查询以避免在有重复时插入 - 比如

select * from foobar where bar=barbar and foo=foofoo
Run Code Online (Sandbox Code Playgroud)

然后检查PHP mysql_num_rows()以查看结果数是否> 0以确定是否继续我的插入.

编辑:例如,假设用户想要向另一个用户发送邀请.我想确保在我的邀请表中,我不添加具有相同对invited_idAND的另一个条目game_id.所以这需要某种检查.

这感觉效率低(而且有点脏).有没有更好的办法?

Mat*_*Cat 5

那么独特的指数呢?

UNIQUE索引创建一个约束,使索引中的所有值必须是不同的.如果您尝试添加具有与现有行匹配的键值的新行,则会发生错误.对于所有引擎,UNIQUE索引允许可以包含NULL的列的多个NULL值.

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

编辑:

表单的列列表(col1,col2,...)创建多列索引.索引值是通过连接给定列的值形成的.

http://dev.mysql.com/doc/refman/5.0/en/create-index.html