php - 需要插入不重复的SQL

标签 php mysql sql codeigniter rss

当前表格是这样的:

CREATE TABLE `feed_items` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `feed_id` int(11) NOT NULL,
  `remote_id` varchar(32) NOT NULL DEFAULT '',
  `title` varchar(255) NOT NULL DEFAULT '',
  `link` varchar(255) NOT NULL DEFAULT '',
  `updated_time` datetime NOT NULL,
  `created_time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

我需要找到一种方法,如果我将多个 RSS 提要拉到一个表中,并且具有相同标题的文章具有相同的“remote_id”值,我如何确保不插入重复值?

我正在使用

$this->db->query('INSERT INTO feed_items(feed_id, remote_id, link, title, created_time, updated_time) VALUES (?, ?, ?, ?, ?, NOW()) ON DUPLICATE KEY UPDATE remote_id=remote_id', array($this->feed_id, $this->remote_id, $this->link, $this->title, $this->created_time, $this->remote_id));

请问有没有更好的办法?

最佳答案

为这两列添加一个 UNIQUE 约束。

关于php - 需要插入不重复的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220476/

相关文章:

php - 视频上传: recommended process?

php - Doctrine 复杂内连接

MySQL:连接多行是条件一部分的表

sql - 如何从SQL Server查询数据?

php - MySQL:仅选择集合中找到的最早日期

php - 如何读取 PHP foreach 循环中的数组?

php - 从多个表中检索内容..可以吗?

php - mysql 到 php 的转换时间在不同服务器上不同

sql - SQL Server 中的计数除以计数(*)

sql - SQL Server 中表的单个列可以分组并连接到单个单元格中吗?