sql - 如何使用 sql select 语句从 url 或电子邮件中提取域?
问题描述
我想要的是只提取域,而不提取顶级域。
我有两个字段,电子邮件和网站。使用两个不同的 sql SELECT 语句,每个字段一个,我想创建两个新字段,EmailDomain 和 WebsiteDomain。
网站中的字段示例:
- https://www.example.com/index.html
- test.domain.com
- 域名.com
- www.domain.co.uk
- 域名.se
- 等等
电子邮件中的值示例:
- name@domain.stormgeo.com
- 名称@domain.com
- name@test.domain.com
- name@domain.co.uk
- 等等
在上面的所有示例中,我希望结果仅为“域”(或“示例”)。
我已经测试并提出了一些几乎可以完成工作的语句,但它们并没有修复所有示例,它们仍然拥有顶级域。
到目前为止,我所拥有的是:
SELECT Account.website, REGEXP_REPLACE (Account.website, '(http[s]?://)?(www\\.)?(.*?)((/|:)(.)*|$)', '\\3') AS `WebsiteDomain` FROM Account
和
SELECT Leads.email, REGEXP_REPLACE (Leads.email, '^.*@([^\\.]+)\\.\\w+','\\1') AS `EmailDomain` FROM Leads
解决方案
推荐阅读
- mysql - 如何使用 MySQL OUTER JOIN 单独分组的表
- azure-pipelines - 使用管道自动创建 Azure VM 的最佳方法是什么?
- python - 如何使用烧瓶(表格、饼图等)在页面上获取多个元素
- powershell - Get-ADObject:解析查询时出错 不支持:-neq'?
- mysql - 如何获取组的最新记录
- javascript - 内联网格 kendoComboBox 在 javascript 中获取值
- javascript - Pilcrow (¶) 或偏微分 (∂) 字符的正则表达式模式
- spring-boot - 使用 Heroku Maven 插件部署 Spring Boot 应用程序
- angular - 使用路由器发送状态未定义
- yaml - CircleCi YAML 配置给出了意外的字符串错误