是否有SQL語句來檢查字段是否存在? 例如: 我有一個數據庫包含以下內容:URL, IsCrawled, Level
等等 我需要檢查URL是否已經存在。 我不關心其他領域。 我正在寫一個非常快的爬蟲,這是必要的。Mysql避免重複的URLS
2
A
回答
1
你爲什麼不使用任何指數下一個普通的選擇:
SELECT ID FROM TABLE WHERE URL = @URL
如果選擇不爲空,那麼就已經之一。
現在,根據您的問題,另一個更好的主意是添加一個UNIQUE CONSTRAINT,所以通過設計您的數據庫不會允許重複的值。
現在,如果您只想比較要查看的網址的一部分(即域),那麼可以使用LIKE比較函數來查看是否已存在具有相同域名的一個URL。
+0
謝謝!正是我在找的! – user1599078
+0
這不會考慮無關的參數,例如市場營銷活動等等,這會影響檢查過程。 –
3
ALTER TABLE `table`
ADD UNIQUE INDEX `urls` (`URL`)
或簡單,
ALTER TABLE `table`
ADD UNIQUE(`URL`);
雖然,我使用第一種方法。只讀了關於第二種方法的工作。 它可能不是如此。
1
這是你想要的嗎?
SELECT COUNT(*)
FROM tableName
WHERE `URL` = 'urlHERE'
,如果它不存在,它將會有0
結果。或在fieldd URL
ALTER TABLE tableName
ADD CONSTRAINT indexName UNIQUE (`Url`)
以這種方式添加唯一索引,如果您將已經存在的URL Insert
語句將失敗。
相關問題
- 1. 避免重複行mysql
- 2. 在MySql中避免重複。
- 3. 避免重複
- 4. 避免重複
- 5. 的Python/MySQL的避免重複插入
- 6. MySQL的 - 存儲座標避免重複
- 7. mysql - 避免重複的最好方法
- 8. 避免重複的mysql連接
- 9. Mysql如何避免重複我自己
- 10. 避免在mysql中重複輸入
- 11. MYSQL計算,避免重複值
- 12. MySQL避免數據重複與插入
- 13. PHP - MYSQL - 避免計數重複元素
- 14. 避免重複在mysql插入
- 15. 避免重複輸入MySQL和PHP
- 16. MySQL查詢,以避免重複結果
- 17. Codeigniter MYSQL QUERY insert_string避免重複
- 18. 避免在mysql表中間接重複
- 19. MySQL查詢 - 避免重複條目
- 20. MySQL如何避免重複行
- 21. 避免重複行
- 22. 避免重複值
- 23. R:避免重複$
- 24. 避免重複行
- 25. JavaScript重構/避免重複
- 26. 避免URLS中的CSRF令牌
- 27. 避免重複的HTML
- 28. javascript避免重複的URL
- 29. 避免重複的結果?
- 30. 避免重複的javascript
您可以在URL字段中放置一個唯一索引,以便相同的URL不能插入兩次。 – Sam
從數據庫方面解決這個問題。爲url字段添加唯一索引。它將執行獨特的約束並提高性能 – Icarus