mysql - 更新 MySQL(使用正则表达式?)

标签 mysql regex dns subdomain

我想将看起来像“someSubdomainInfo.mydomain.com”的值更新为“mydomain.com”(.com 只是一个例子,我想捕获其他所有内容 - 基本上清理子域信息)

想到使用 ^([a-z].*.)?([a-zA-Z0-9_-].[a-z]) 作为 RegExp(缺少以数字开头的域,可能是其他人)

关于如何编写相关更新语句有什么想法吗?

谢谢,

编辑:再看看我的问题,好像我没有表达清楚。 我希望对所有域执行此操作,而不是对一个域执行此操作。 换句话说,我不知道“mydomain.com”是什么。

如果我导出到 csv,我可以使用这个正则表达式并替换为\2(在 EditPro 文本编辑器上验证),我正在寻找类似于直接在 MySQL 中使用 dome 的东西。

最佳答案

SUBSTRING_INDEX()最适合提取部分 URL。

如果您知道域扩展名,就可以聪明地防止意外更新。否则你可以使用 regex在子句中,或计算 . 的数量,以防止此更新更改您不想清除其子域的 URL。

UPDATE test SET url = SUBSTRING_INDEX(url, '.', -2) WHERE SUBSTRING_INDEX(url, '.', -2) = 'mydomain.com';

关于mysql - 更新 MySQL(使用正则表达式?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063931/

相关文章:

javascript - 在 .replace JS 上抓取选定的文本

regex - 通过正则表达式验证 CQ5 对话框

ios - iOS VPN DNS泄漏

mysql - 使用 mysql auto_increment 到一个较低的未使用的数字

Windows 服务器上的 php5 和 mysql5

java - 正则表达式匹配具有固定前缀和后缀的可变数量的作品

powershell - dig (DNS Lookup) 在 Windows 上指定 DNS 服务器

dns - 使用 cloudflare 将 CNAME 分配到我在 amazon S3 中的静态网站存储桶

mysql - 如何确定 WHERE 子句的哪个条件失败?

MYSQL - 我怎样才能让这个左连接工作?