2

是否有用于检查字段是否存在的 SQL 语句?示例:我有一个包含以下内容的数据库:URL, IsCrawled, Level等等。我需要检查 URL 是否已经存在。我不关心其他领域。我正在编写一个非常快速的爬虫,这是需要的。

4

3 回答 3

3
ALTER TABLE `table`
ADD UNIQUE INDEX `urls` (`URL`)

或简单,

ALTER TABLE `table`
ADD UNIQUE(`URL`);

不过,我使用第一种方法。也只阅读了第二种工作方法。可能并非如此

于 2012-09-02T15:10:03.043 回答
1

这是你想要的吗?

SELECT COUNT(*)
FROM tableName
WHERE `URL` = 'urlHERE'

0如果它不存在,它将有一个结果。或在字段上添加唯一索引URL

ALTER TABLE tableName
ADD CONSTRAINT indexName UNIQUE (`Url`)

这样,Insert如果您插入一个已经存在的 url,该语句将失败。

于 2012-09-02T15:10:09.767 回答
1

为什么不在任何索引下使用普通选择:

SELECT ID FROM TABLE WHERE URL = @URL

如果选择不为空,那么已经有一个。

现在,根据您的问题,另一个更好的主意是添加一个UNIQUE CONSTRAINT以便通过设计您的数据库将不允许该值的重复。

现在,如果您只想比较 URL 的一部分(即域),那么您可以使用LIKE比较功能来查看是否已经存在一个使用相同域名存储的 URL。

于 2012-09-02T15:12:39.643 回答