如何以更优化的方式使用INSERT INTO跳过重复项?

时间:2011-02-14 02:13:53

标签: mysql

我想建立一个实验,一个字典,任何用户都可以建议新词。

为了避免重复,我曾经做过搜索该单词的查询SELECT,如果大小为零,那么我会执行INSERT INTO

我觉得这种方法只有在需要警告用户时才能正常工作,但在我的情况下,我想要更快,自动化和安静的东西。

单词的第一个条目(用户第一次建议该单词)将成为页面单词的ID,因此我不想使用REPLACE

我想知道使用INSERT IGNORE是否可以成为解决方案?

2 个答案:

答案 0 :(得分:1)

INSERT IGNORE会在这里为您提供帮助。您只需要确保在不希望重复的列上定义了UNIQUE索引。

另一个选项是INSERT INTO ... ON DUPLICATE KEY UPDATE,它不会再次插入值,但会允许您更新该行中的其他列。例如,计数器或时间戳。

答案 1 :(得分:0)

“INSERT INTO”忽略以后的重复项,或“INSERT INTO ... ON DUPLICATE KEY UPDATE”从后面的重复项中获取新字段:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html