更新MySQL(使用regexp?)

更新MySQL(使用regexp?),mysql,regex,dns,subdomain,Mysql,Regex,Dns,Subdomain,我想将看起来像“someSubdomainInfo.mydomain.com”的值更新为“mydomain.com”(该.com只是一个示例,我想捕获其他所有内容-基本上清除子域信息) 考虑使用^([a-z].*)?([a-zA-Z0-9_-][a-z])作为RegExp(缺少以数字开头的域,可能还有其他域) 关于如何编写相关的更新声明,有什么想法吗 谢谢 编辑:再看一次我的问题,似乎我没有把它说清楚。 我希望对所有域都执行此操作,而不是逐个域。 换句话说,我不知道“mydomain.com”是

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

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

关于如何编写相关的更新声明,有什么想法吗

谢谢

编辑:再看一次我的问题,似乎我没有把它说清楚。 我希望对所有域都执行此操作,而不是逐个域。 换句话说,我不知道“mydomain.com”是什么


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

RegExp在MySQL中仍然是主要的。它们有利于匹配和比较,但替代性不强

我的建议是使用


这将在列值中查找根域。如果它找到它,它将只需要字符串的这一部分。否则,它将保留原始字符串。使用上面的
SELECT
语句对其进行测试,并在为您的模式调整后将其作为
更新。它们有利于匹配和比较,但替代性不强

我的建议是使用

这将在列值中查找根域。如果它找到它,它将只需要字符串的这一部分。否则,它将保留原始字符串。使用上面的
SELECT
语句对其进行测试,并在根据架构调整后将其作为
更新。

最适合提取URL的部分

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

UPDATE test SET url = SUBSTRING_INDEX(url, '.', -2) WHERE SUBSTRING_INDEX(url, '.', -2) = 'mydomain.com';
最适合提取URL的部分

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

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