开发者

Return all elements from list that don't have a record. (MYSQL)

I have a list of feeds:

('feed1', 'feed2', 'feed3')

I also have a table feeds with a list of feeds, I need to find which feeds in my search list don't appear in the database.

CREATE TABLE `feeds_filte开发者_运维问答red` (
  `id` CHAR(36) NOT NULL,
  `url` VARCHAR(255) NOT NULL,
  ......
  PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;

For example feed1 and feed3 exist in my table so I want feed 2 returned. Please note: that the feeds table also has feed4, feed5 etc so I don't want them returned either. Only feed2

I can easily write a PHP script to do this, but I was wondering if there was an easy way to do this is MySQL?

Thanks in adavnce!


You could create a temporary table, do a LEFT JOIN, then get the records where the RHS of the join is NULL.


You can select the items from one table that don't appear on another table, ie:

select * from feeds_filtered where url not in (select url from feeds)


You can use a query like:

select * from feeds_filtered
where url is not in ('feed1', 'feed3')
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜