0

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

1 回答 1

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

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

于 2013-06-19T13:12:09.453 回答