基本上我正在管理一个报道文章的新闻网站。每次我刮一篇文章,我都会把它添加到一个名为Scrapercontent的数据库中。出现了一个问题,其中内容编辑器删除了一些文章,因为他们不希望它们被显示。但是,由于刮刀不知道哪些文章被删除,它只是再次获取相同的文章,并在下次运行时将它们重新发布到Scrapercontent表。我想避免重新发布这些编辑不喜欢的相同文章的表格。
我的想法是创建另一个表并将所有文章放在那里。这样,由于编辑器不会从另一个表中删除文章,我可以检查传入的文章,反对这个“其他”表,以查看它是否曾经存在于某个时间点。下面是一个实现,但它并不好......我正在努力使实现正确。
我的想法是这样的,每次我收到一篇文章,我都不知道它是“好”还是“坏”,坏的意思是它以前被删除了。所以,这个过程是
文章 - >检查它是否在另一个“检查表”中
- >如果它在“检查表”中不存在那么
- >将文章发布到“检查表”和Scrapercontent表
这会有效,有人可以给我SQL吗?
我使用名为a_text的列来查看表中是否已存在某些内容。我只是看看之前是否已经提取了所提取的文本,因为如果它们是同一篇文章,那么两篇文章将只有相同的文本。
SQL是否支持if then语句,如:
If NOT EXISTS
(SELECT *
FROM checktble
WHERE a_text = %s)''', (a_text))(
THEN INSERT INTO SCRAPERCONTENT (a_text, a_link,... etc.) VALUES (%s,%s... etc.) etc.0