所以我試圖合併兩個公司信息數據庫(表A和表B從這裏出),其中最常見(和可靠)的單一參考點是網站的URL。表A是最新的,表B是要更新的。MySQL確切的URL搜索
我已經從表A中提取URL並使用PHP(約6000個URL)進行了清理,計劃是根據找到的URL(而不是URL本身)找到並更新表B中的一些信息。
在表A中,所有的URL都是domain.com
或www.domain.com
或www.subdomain.domain.com
沒有http://或任何尾隨/其他URL數據。在表B它們可能包含與他們如http任何額外信息的原始網址://等
現在,我已經試過表B像這樣尋找公司通過網址:
SELECT * FROM companies WHERE website LIKE '%$url1%' OR website LIKE '%$url2%'...
雖然這可行,但它也會提取不正確的信息。例如,我沒有表A中列表中的bt.com
(或其中的任何變體),但它在表B中匹配(表A中有www.corporate.bt.com
,我認爲它與它匹配)。
那麼,我該如何阻止這種情況發生?它顯然在URL列表中發現了一些類似的內容,但我只想匹配確切的字符串。所以在上面的例子,如果我在尋找www.corporate.bt.com
它應該只返回,如果它發現它在字符串中(http://www.corporate.bt.com/
是好的,http://bt.com/
不是)
而且,這將是執行此的最好方式數據集這樣大的動作?表A有大約6,000個URL,表B有14,000個(表A中並非全部將在表B中)。
恐怕這不能按預期工作。第一個和LIKE拉同樣的結果。第二個不會工作,就好像我正在尋找'www.bt.com',它不會匹配'http:// www.bt.com /' –
@daogle查看更新部分,這將有助於您 – Girish
隨着我發佈的答案,你的第一個建議工作得很好(雖然它需要6分鐘來運行查詢)。我確實嘗試過你的最後一個例子,但15分鐘後我停止了查詢 - 性能太差了!感謝您的幫助! –