1
我有一個百萬或urls在mysql表中的列表。在mysql中的url的格式列表
我需要清理數據(提取域),以便我可以對DISTINCT類型查詢充滿信心。
數據有幾種不同的類型: -
www.domain.tld
domain.tld
http://domain.tld
https://vhost.domain.tld
domain.tld/
有無效域和空數據。
理想情況下,我想沿着線做一些事情: -
UPDATE table1 SET domain = website REGEXP '^(https?://)?[a-zA-Z0-9\\\\.\\\\-]+(/|$|\\\\?)'
域是一個新的空場,網站是原始URL。
沒有固定的答案,「持平」的域名是什麼,這取決於你的應用領域,使用的情況下,道德和個人信念,以及ICANN最近創建多少個虛榮TLD。除此之外,你的正則表達式並不壞,但MySQL'REGEXP'似乎只返回一個布爾值。我會寫一些外部腳本來清理數據並將其加載到新列中;另一種方法是運行'SET domain = SUBSTR'(從8開始)的類型的幾個更新,其中LEFT(domain,7)='http://'',直到所有的cruft消失。 – LHMathies