是否有SQL语句来检查字段是否存在?
例:
我有一个包含以下内容的数据库:URL, IsCrawled, Level
等等。
我需要检查URL是否已经存在。
我不关心其他领域。
我正在写一个非常快速的爬虫,这是必要的。
答案 0 :(得分:3)
ALTER TABLE `table`
ADD UNIQUE INDEX `urls` (`URL`)
或简单,
ALTER TABLE `table`
ADD UNIQUE(`URL`);
虽然,我使用第一种方法。只阅读了第二种方法。 可能不是这样。
答案 1 :(得分:1)
这是你想要的吗?
SELECT COUNT(*)
FROM tableName
WHERE `URL` = 'urlHERE'
如果不存在0
,则结果为URL
。或者在字段ALTER TABLE tableName
ADD CONSTRAINT indexName UNIQUE (`Url`)
Insert
以这种方式,如果您插入已存在的网址,{{1}}语句将失败。
答案 2 :(得分:1)
为什么不在任何索引下使用普通选择:
SELECT ID FROM TABLE WHERE URL = @URL
如果select不为null,那么已经有一个。
现在,根据您的问题,另一个更好的想法是添加UNIQUE CONSTRAINT,因此通过设计,您的数据库将不允许重复该值。
现在,如果你只想比较部分URL来查看(即域名),那么你可以使用LIKE比较函数来查看是否已经存储了一个具有相同域的URL名。