2016-10-22 62 views
0

我有一个包含2列,userid和messageid的表。我通过php脚本自动更新它,但我无法获得工作插入语句。我不介意是否有重复的userid或messageid的重复(实际上应该是重复的),我只是不希望重复使用同一个userid和messageid组合。有没有什么办法可以写一个查询来为我做,或者我必须在php级别处理它?插入到2列表中,避免重复记录

我可能试过了20个不同的查询,我发现在这里和谷歌,但没有得到它的权利。这是我想的最后一件事:

INSERT INTO interests_join (userid, interestid) 
VALUES (1, 4) 
WHERE NOT EXISTS 
    (SELECT userid, interestid FROM interests_join WHERE userid = 1 AND interestid = 4) 

回答

3

您可以添加一个UNIQUE KEY,SQL将拒绝插入新行是现有的副本。

ALTER TABLE `interests_join` ADD UNIQUE `row` (`userid`, `interestid`); 

然后,如果查询成功或不成功(错误#1062),您将不得不从PHP检查。如果存在重复的行,则无法应用该键,必须先将其移除。

+0

希望能够通过查询来整合这一点,而不是改变表格,但是这可以完成工作。 –