用于比较 2 个主机 URL 的 SQL 查询

Posted

技术标签:

【中文标题】用于比较 2 个主机 URL 的 SQL 查询【英文标题】:SQL query to compare 2 host URLs 【发布时间】:2021-01-13 06:02:01 【问题描述】:

我想比较 2 个 URL 主机名并将它们分类为相等或不相等。

例如,

www.abcd.com/xyzhttps://www.abcd.com/def 应该被平等对待 www.abcd.comhttps://www.abcd.com/xyz 应该被平等对待。 www.abcd.com/xyzwww.abcdef.com/xyz 应该被视为不相等。 www.abcd.com/xyzwww.xyz.com/pqr 应该被视为不相等

我目前正在使用-

Case WHEN regexp_match(a, 'www.*/'::text) = regexp_match(b, 'www.*/'::text)  THEN 'Direct'::text
CASE WHEN (regexp_match(tdahw.event_value, 'www.*/'::text) <> regexp_match(a, 'www.*/'::text)   THEN 'Referrer'::text
           

我无法使用这个处理最后一个案例。 我只想将它们分为平等和不平等。一列包含不带https 的url,1 列包含https

【问题讨论】:

您可以将网址拆分为它们的组件:***.com/a/11384025/905902 这将使比较变得非常容易。 【参考方案1】:

如果您只需要处理https://,您可以例如为此使用trim

trim(leading 'https://' from url_1) = trim(leading 'https://' from url_2) 

如果你想处理httpshttp一样,可以使用regexp_replace:

regexp_replace(url_1, '^https0,1://', '') = regexp_replace(url_2, '^https0,1://', '')

如果您经常需要,可以将其放入 SQL 函数中。

【讨论】:

@AbHiNaVAgRaWaL:如果您想要其他内容,您应该在问题中添加该信息。 edit 并将您的尝试添加为格式化文本。不要将代码或附加信息放入 cmets。更详细的样本数据和预期输出也有助于避免对您没有帮助的答案。

以上是关于用于比较 2 个主机 URL 的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

用于选择前 3 个字符的 Sql 查询

用于比较两个表的 SQL 到 Mongo DB 查询

用于查找重叠客户的 SQL 子查询

用于比较字符串(HH24MI)与日期的 Sql 查询帮助

用于具有动态样本大小的分层抽样的 sql 查询

比较内存中的 2 个无序记录集