我有两列:“网站1”和“网站2”,我想测试是否平等。问题是格式存在差异,例如:
www.example.com http://www.example.com/
example2.co.uk/ https://www.example2.co.uk/Default.aspx
我希望能够仅匹配域名。这可以在MySQL中完成,给出一个正则表达式,如:
(http://|https://)?(www.)?[A-z]*(.com|.co.uk|.us|.org|.net|.mobi)
答案 0 :(得分:0)
这可以在没有RegEx的情况下完成,
尝试这样的事情只取出域名
SELECT
(t1.website1, instr(reverse(t1.website1),'.')),
(t1.website2, instr(reverse(t1.website2),'.'))
FROM table1 t1
然后您可以检查域上的相等性。
您可能还需要替换/中的数据,并且在您的选择中没有任何内容。否则.aspx将成为上述情况中的支配。
您还必须有一个额外的列来计算金额。 ,因为有些域名有2个像.co.uk / .co.jp
像这样SELECT LEN('t1.website1') - LEN(REPLACE('t1.website1','.','')) AS AmountOfDotsInString
这可以计算字符串中存在多少个点,在清除任何/之后的数据之后计数。