【发布时间】:2014-05-15 17:56:25
【问题描述】:
我从每 1500 万次获取的 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
}
但我认为这不是最好的解决方案。 每次右转都这样做不是很轻吗?
谢谢。
【问题讨论】:
-
在表
guests的列link上设置唯一约束。然后,当您解析 JSON 并将其保存在数据库中时,请使用INSERT IGNORE INTO或REPLACE INTO。 -
如果您不想重复内容,一种选择是将列设为唯一。当然还有其他解决方案。
-
@DaveChen 还有
ON DUPLICATE KEY UPDATE -
感谢大家!戴夫,我似乎可以在此列上设置唯一约束,因为我已经在 id 字段上有一个主键。正常吗?
-
请在链接列上设置唯一约束。例如,
ALTER TABLE guests ADD UNIQUE (link)。如果表已经有重复项,那么只需使用ALTER IGNORE来删除表中的所有重复项。
标签: php mysql sql duplicates