我有一个Feed列表:
('feed1', 'feed2', 'feed3')
我还有一个包含Feed列表的表feeds
,我需要查找搜索列表中哪些Feed没有出现在数据库中。
CREATE TABLE `feeds_filtered` (
`id` CHAR(36) NOT NULL,
`url` VARCHAR(255) NOT NULL,
......
PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
例如我的表中存在feed1和feed3,所以我想要返回feed 2。 请注意: ,Feed表还有feed4,feed5等,所以我也不希望它们返回。只有feed2
我可以轻松编写一个PHP脚本来执行此操作,但我想知道是否有一种简单的方法可以做到这一点是MySQL吗?
感谢adavnce!
答案 0 :(得分:2)
您可以创建一个临时表,执行LEFT JOIN
,然后获取联接的RHS为NULL
的记录。
答案 1 :(得分:0)
您可以从一个表中选择未出现在另一个表中的项目,即:
select * from feeds_filtered where url not in (select url from feeds)
答案 2 :(得分:-1)
您可以使用以下查询:
select * from feeds_filtered
where url is not in ('feed1', 'feed3')