通过regexp在MySQL中匹配网站

时间:2013-06-19 12:48:04

标签: mysql regex

我有两列:“网站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)

1 个答案:

答案 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

这可以计算字符串中存在多少个点,在清除任何/之后的数据之后计数。