Php 不要在mysql数据库中复制内容

Php 不要在mysql数据库中复制内容,php,mysql,sql,duplicates,Php,Mysql,Sql,Duplicates,我在数据库中输入每15mn获取一次JSON的信息。 但我不想每次解析JSON时都重复内容。 我可以通过链接列比较条目 我的解决方案是这样的: $query="SELECT link FROM guests WHERE link=$comparison LIMIT 1"; $result=mysql_query($query); $row = mysql_fetch_row($result); if ($row < 1 ){ ENTER THE NEW CONTENT } 但我认为这不是

我在数据库中输入每15mn获取一次JSON的信息。 但我不想每次解析JSON时都重复内容。 我可以通过链接列比较条目

我的解决方案是这样的:

$query="SELECT link FROM guests WHERE link=$comparison LIMIT 1";
$result=mysql_query($query);
$row = mysql_fetch_row($result);

if ($row < 1 ){
ENTER THE NEW CONTENT
}
但我认为这不是最好的解决办法。 在每一个右转处这样做不是很轻吗


谢谢。

如前所述,您最好的选择是在“链接”列上使用唯一的约束

至于如何在不首先检查Do this exist查询的行数的情况下插入行,方法是:

插入忽略
这将不会插入具有重复“链接”列的行。但是,它不会抛出错误,因此请注意,复制将以静默方式失败。

在表来宾中的列链接上设置唯一约束。然后,在解析JSON并将其保存到数据库中时,请使用INSERT IGNORE INTO或REPLACE INTO。如果不希望重复内容,一个选项是将列设置为唯一。我相信还有其他的解决方案。@DaveChen也在向你们所有人重复密钥更新!Dave,我似乎无法在这个列上设置唯一的约束,因为我在id字段上已经有了主键。是否正常?请在链接列上设置唯一约束。例如,ALTERTABLE来宾添加唯一链接。如果表已经有重复项,则只需使用ALTER IGNORE即可删除表中的所有重复项。谢谢,但似乎不可能在链接解决方案上使用唯一约束,因为my id列是主键。对吗?一个表中可能有多个唯一的列。您可以同时拥有主键和唯一约束。谢谢John。我还没有找到解决办法。但我刚刚意识到文本字段不能设置为唯一。这样我就可以在我的案例中使用独特的解决方案。。。